PHP5 以後的 DateTime
是一個強大的時間處理物件,許多框架的 Date
物件就是延伸自 DateTime,因此通常不會特別實作太多時間處理函式在裡面,而是讓你專注的用原生的 DateTime 來處理時間,現在我來整理一下常用的一些時間日期增減方式。
取得當下時間日期
$date = new DateTime('2000-01-01');
// OR
$date = new DateTime('now');
增加10天
用 DateInterval 與 DateTime::add()
$date = new DateTime('2000-01-01');
$day = new DateInterval('P10D'); // P開頭代表日期,10D 代表 10 天
$date->add($day);
echo $date->format('Y-m-d') ;
用 DateTime::modify()
$date = new DateTime('2006-12-12');
$date->modify('+10 day');
echo $date->format('Y-m-d');
減少一個月
$date = new DateTime('2000-12-31');
$date->modify('-1 month');
echo $date->format('Y-m-d') ;
用 DateInterval 增加兩年四天六小時又八分
$date = new DateTime('2000-01-01');
$day = new DateInterval('P2Y4DT6H8M'); // 兩年四天六小時又八分,中間的 T 是時間的意思
$date->add($day);
echo $date->format('Y-m-d') ;
DateInterval 的寫法說明
new DateInterval('P1Y2M3D'); // P開頭表示日期,一年二個月又三天
new DateInterval('PT4H5M6S'); // T開頭表示時間,四小時五分又六秒
new DateInterval('P1Y2M3DT4H5M6S'); // 合併起來,一年二個月三天四小時五分又六秒
new DateInterval('P3M'); // 三個月
new DateInterval('PT1H'); // 一小時