ラボ > PHP:日時関連

PHP 日付(DateTime())

「strtotime()」の範囲が2038年あたりなので「DateTime()」を使おう・・・という内容。日付の差分なども。

作成日: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」が「+」「-」のこと。

関連項目

FuelPHPとDateTimeクラスでエラー

サンプル

日付(DateTime())のサンプル