スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

PHPの関数「strtotime」の便利な使い方。簡単に何日後や何か月後。

update : 2009/03/05

PHPの関数「strtotime」は知っておくと便利な使い方があります。

例えば、プログラミングで「何日後」や「何か月後」などを求めなければならない場面は結構多いです。
PHPの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の活用方法を知っていればだいぶ差がつきますね。
いやぁ、らくちん。

B!

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives