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()));
Categories: PHP