2006.03.18

PHPの日付計算

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で何か発見したら報告します。

トラックバック

このエントリーのトラックバックURL:
http://www.ilovex.co.jp/scripts/intra/mt/mt-tb.cgi/948

コメントを投稿

photo
saito