2012/03/29

PHPの日付計算

PHPの日付の記載方法を調べていたら
参考になるところを発見したので、
貼り付けておく。

http://www.ilovex.co.jp/Division/ITD/archives/2006/03/php.html
株式会社アイロベックス様の
ITプロフェッショナル部のアーカイブより発見。


PHPで1週間前の日付の取得方法がわからなかったので、
調べたところ下記の記述が出てきました。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
//今日の日付を取得(タイムスタンプ)
$date_today = mktime (0, 0, 0, date("m"), date("d"), date("y"));
//一週間前を取得
$date_oneweek = $date_today - 86400 * 7;
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
86400というのが一日を表しているらしいです。
その数値×7日で一週間分の数値を求め、それを本日のタイムスタンプから引くと、
一週間前の日付が取得できるといった原理です。
確かにちゃんと動くのですが、本当にこの方法しかないのか??
と思い調べたところ違う書き方もありました。
しかも、上記の記述よりも簡単に書くことができました。

↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
echo "1日前" . date("Y/m/d",strtotime("-1 day"));
echo "1ヶ月前" . date("Y/m/d",strtotime("-1 month"));
echo "1年前" . date("Y/m/d",strtotime("-1 year"));
echo "1週間前" . date("Y/m/d",strtotime("-1 week"));
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
1日前,1週間前,1年前,それに加えて1週間前もこのコードで取得できます。
上記コードだと、本日から○日後の日付が取得できますが、
次のコードだと、指定日付から○日後の日付が取得できます。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
echo "1日前" . date("Y/m/d",strtotime("-1 day" ,strtotime("2005/12/10")));
echo "1ヶ月前" . date("Y/m/d",strtotime("-1 month" ,strtotime("2005/12/10")));
echo "1年前" . date("Y/m/d",strtotime("-1 year",strtotime("2005/12/10")));
echo "1週間前" . date("Y/m/d",strtotime("-1 week" ,strtotime("2005/12/10")));
注意:"2005/12/10"は適当な日付です。ここに指定したい日付を記述して下さい。
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑

また、PHPで何か発見したら報告します。