2007年5月13日日曜日

PHPの日付操作はDateTimeが簡単

 PHP 5.2以降の話。
 PHPで、日付を計算したい時がたまにある。ある日付の7日前の日付とか、システム日時の1ヵ月後の日付とか。たいていは日付関連の機能をまとめたclassを作っておいて、その中に日付計算機能を入れておく。でも、PHP5.2以降ならDateTimeオブジェクトを使えば簡単に日付の計算ができる。

 まずDateTimeオブジェクトを生成する。普通にnewするか、date_create()で生成できる。
 あとは、DateTime::modify()で日付の加減算をして、DateTime::date_format()で出力する。


$date = new DateTime("2006-12-12");
$date->modify("+1 day");
echo $date->format("Y-m-d");


 面白いのはmodify()で指定できる日付の形。普通は"+1 day"とか"+1 week"なんかを指定するけど、"last Monday"なんてのも指定できて便利。
 この書式については、PHPのstrtotime()GNU tar 1.15.1: Relative items in date stringsに詳しく書いてある。
 "2days ago"と複数形でも指定できるし、"tomorrow"なんてのもできて、ソースコードがここだけちょっと普通の文章っぽく出来るね。

関連記事:
 PHPの計算が融通が利く件について
 FeedCreator.class.phpを使いこなすポイント
 PHPでhttpステータス404を返す方法
 なぜPEAR::Services_Flickrが無いのか?
 PHPで簡単にRSS/Atomフィードを生成

0 件のコメント:

ブログ アーカイブ

tags