作成日:2018-06-15, 更新日:2018-08-17
日付からユニックスタイム取得
$date = new DateTime('2040-06-15 20:59:30'); echo $date->format('U');
ユニックスタイムから日付取得
$date = new DateTime('@' . time()); $date->setTimezone(new DateTimeZone('Asia/Tokyo')); echo $date->format('Y-m-d H:i:s');
〇〇前、後
まずはインスタンス化
$ori='2016/07/11 00:00:00'; $date = new DateTime($ori);
- 1日後(明日)
-
$date->modify('+1 day'); echo $date->format('Y-m-d');
- 初日の1秒前
-
$date->modify('first day of -1 second') echo $date->format('Y-m-d H:i:s'); // 2016-06-30 23:59:59
差分
下記のような2つの日時がある場合の差分の出し方。
$date1 = new DateTime('2016-07-11 16:00:00'); $date2 = new DateTime('2016-07-15 18:40:00');
- ($date2 - $date1)日
-
$diff = $date1->diff($date2); echo $diff->format('%R%a'); // +4
- ($date1 - $date2)日
-
$diff2 = $date2->diff($date1); echo $diff2->format('%R%a'); // -4
- ($date1 - $date2)日の絶対値
-
$diff3 = $date2->diff($date1, true); echo $diff3->format('%a'); // 4
- ($date2 - $date1)日で書式指定
-
$diff4 = $date1->diff($date2); echo $diff4->format('%R %Y年 %mヶ月 %d日 %h時間 %i分 %s秒'); // + 00年 0ヶ月 4日 2時間 40分 0秒
※「%R」が「+」「-」のこと。