DateTime

Posted by muchag | PHP | 2008-05-14 (水) 18:48:47


php:DateTime クラス

mktime

今まで、日付操作をする場合は、mktime を用いて

  1. <?php
  2. $today = mktime( 0, 0, 0, date('m'), date('d'), date('Y') );
  3. $myDate = $today + 86400 * 7; // 1週間後の日付を取得
  4. $myDate = date('Y-m-d', $myDate);
  5. echo $myDate;
  6. ?>

なんて、シリアル値で操作をしていたけど、
今日、DateTime クラスなるものを用いる方法をめっけた。

DateTime
  1. <?php
  2. $date = new DateTime("2006-12-12");
  3. $date->modify("+1 day");
  4. echo $date->format("Y-m-d");
  5. ?>

ほーほー、こういう方法もあるのか~。

更に

面白いのは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
文言指定

面白い使い方を見つけた♪
CREATIVETIPS:【php】現在日時と来月1日までの正確な時間を表示する

  1. <?php
  2. // 翌月の1日(処理を行った時刻)
  3. $next_month = new DateTime('first day of next month' );
  4. echo $next_month->format( 'Y-m-d H:i:s' );
  5.  
  6. // 翌月の1日(切り替わり時刻)
  7. $next_month = new DateTime('midnight first day of next month' );
  8. echo $next_month->format( 'Y-m-d H:i:s' );
  9. ?>
  10.  
  11. // 出力結果
  12. 2015-03-01 12:44:44
  13. 2015-03-01 00:00:00
PHP | 2008-05-14 (水) 18:48:47 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment