PHPの日付関数「strtotime」は知っておくと便利な使い方があります。
例えば、プログラムで「何日後」や「何か月後」などを求める場合、strtotimeの使い方をきちんと知っていれば、とても簡単に処理をすることができます。
それでは、いくつかの例を見ながら解説します。
例えば、今日が「2011/10/1」と仮定します。
例えば、1週間後の日付を取得したい場合、以下のようにして求めることがきます。
echo date('Y/m/d', strtotime('+7 day'));
結果は「2011/10/08」になります。
6ヶ月前の結果は「2011/04/01」になります。
echo date('Y/m/d', strtotime('-6 month'));
200日前の結果は「2011/03/15」になります。
echo date('Y/m/d', strtotime('-200 day'));
組み合わせて、3週間後のさらに4日後といった指定も可能です。結果は「2011/10/10」です。
echo date('Y/m/d', strtotime('+1 week 2 days'));
曜日の指定も簡単です。以下のようにして「次の日曜日」を求めることもできます。結果は「2011/10/02」です。
echo date('Y/m/d', strtotime('next Sunday'));
さらに「前の日曜日」は「2011/09/25」です。
echo date('Y/m/d', strtotime('last Sunday'));
今日ではなく「任意の日から何日後」を求めることもできます。
2020/1/1の1000日後は「2022/09/27」です。
echo date('Y/m/d', strtotime('+1000 day', strtotime('2020/1/1')));
このように、瞬時に答えが出にくいような複雑な日付の計算も、関数「strtotime」を使えば簡単に求めることができます。
PHPに限らず、このような場面でプログラム処理の流れを考えると、timestamp関数などで現在時刻を取得して、x日後だと1,000ミリ秒かける60秒かける60分かける24時間かけるx、の値を加算して、さらにフォーマットを変換して出力。。。といったようなめんどくさい記述を書いてしまいがちです。
strtotimeの活用方法を知っていればだいぶ差がつきますね。
いやぁ、らくちん。
コメントする