それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

PHPで日付を簡単に進める。

いまさら感はあるんだけどさ。phpの日付処理は、クラス+メソッドで実装されてない*1オブジェクト指向が最高だと思わないし、それが以外の手法もあって、それも便利ってことを改めて認識したのでエントリにします。

日付処理をする .

日付関数を組み合わせたサンプル

<?php
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

参考→PHP: DateTime::add - Manual


意外と便利ね。でもJava臭てかなわない書き方だよね date_addとか date_create して結果をdate_addするとか

そんな面倒なことしなくても・・・・

<?php
$t  = time();
strtotime("+1day”, $t);
<?php
date_default_timezone_set("Asia/Tokyo");
$d = "2012-02-10";
$a = strtotime($d);
$a = strtotime( "+1 day", $a );
var_dump(date("Y-m-d",$a));


これだけでできたりする。

書式の詳しいことはマニュアルに

PHP: Relative Formats - Manual

特に相対的時刻が便利なんで活用するといいですね

"last day of next month"

とか

"tommorow noon "

とか

"+5 weeks"
"12 day"

とかでどんどん日付を進められる。

とても便利です

$time + 60*60*24

よりは

<?php
strtotime("+1day" , $time);

と書いたほうがコードの意図が明確になるよね。

*1:Datetimeクラスあたりを使えばあるんだけど