如果我們要在 PHP 裡面計算兩個時間經過了多久,可以透過先透過 new DateTime() 取得時間物件後,再透過 diff 去取得另一個經過的時間物件,像是:
$d1=new DateTime("2012-07-08 11:00:00");
$d2=new DateTime("2021-12-01 11:00:00");
$diff=$d2->diff($d1);
這時取得的 $diff 會大概是長下面這個樣子:
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 0
[h] => 0
[i] => 0
[s] => 0
[f] => 0
[weekday] => 0
[weekday_behavior] => 0
[first_last_day_of] => 0
[invert] => 0
[days] => 0
[special_type] => 0
[special_amount] => 0
[have_weekday_relative] => 0
[have_special_relative] => 0
)
接著要顯示經過的時間的話,可以再透過 format() 去轉換,比如說:
echo $diff->format("%y years %m monthes %d days");
這樣就可以顯示兩個時間間經過了 n 年 m 月 p 日這樣,用中文也沒有問題。