DateTime
Contents
php:DateTime クラス
mktime
今まで、日付操作をする場合は、mktime を用いて
- <?php
- $today = mktime( 0, 0, 0, date('m'), date('d'), date('Y') );
- $myDate = $today + 86400 * 7; // 1週間後の日付を取得
- $myDate = date('Y-m-d', $myDate);
- echo $myDate;
- ?>
なんて、シリアル値で操作をしていたけど、
今日、DateTime クラスなるものを用いる方法をめっけた。
DateTime
- <?php
- $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”なんてのもできて、ソースコードがここだけちょっと普通の文章っぽく出来るね。
引用元:floatingdays PHPの日付操作はDateTimeが簡単
らしい。
まだまだ、PHP初心者から抜け出られないな。。。
2015-02-08 追記
【環境】
php:5.4.7
php:5.4.7
文言指定
面白い使い方を見つけた♪
CREATIVETIPS:【php】現在日時と来月1日までの正確な時間を表示する
- <?php
- // 翌月の1日(処理を行った時刻)
- $next_month = new DateTime('first day of next month' );
- echo $next_month->format( 'Y-m-d H:i:s' );
- // 翌月の1日(切り替わり時刻)
- $next_month = new DateTime('midnight first day of next month' );
- echo $next_month->format( 'Y-m-d H:i:s' );
- ?>
- // 出力結果
- 2015-03-01 12:44:44
- 2015-03-01 00:00:00