PHP 日期運算 - strtotime() and mktime()
PHP:7.2
Laravel:5.8
在 PHP 中,日期運算的方法很多種,比如說 strtotime()
跟 mktime()
這兩個 method 都可以針對日期做一些運算。
Notice: 使用日期運算之前,記得使用 date_default_timezone_set()
調整自己的時區。
mktime()
mktime()
是透過傳入的時間單位參數取得 Unix timestamp
,需要傳入完成的時間單位(時, 分, 秒, 月, 日, 年)
// 十天後
date('Y-m-d' , mktime(0, 0, 0, date('m'), date('d')+10, date('Y')));
// 三個月後
date('Y-m-d' , mktime(0, 0, 0, date('m') + 3, date('d'), date('Y')));
strtotime()
strtotime()
是將字串轉成 Unix timestamp
,因此適合用來比較兩個時間的差異。
// 計算兩個時間的差異
$a = '2012-01-05 22:30:30';
$now = time(); // 現在時間
// 單位:秒
echo $now - strtotime($a);
// 時間運算(現在往後算兩年又十天)
echo date('Y-m-d', strtotime('+2 year, +10 days', time()));