我怎樣才能得到這個輸出以HH:MM格式獲得時間差異php
HH:MM格式?
$to_time = strtotime("2008-12-13 10:42:00"); <--AM
$from_time = strtotime("2008-12-14 8:21:00"); <-- PM
$stat = round(abs($to_time - $from_time)/60,2). "min";
我從這個得到的是1299分鐘
但我無法弄清楚如何使它輸出
21H:41米
我怎樣才能得到這個輸出以HH:MM格式獲得時間差異php
HH:MM格式?
$to_time = strtotime("2008-12-13 10:42:00"); <--AM
$from_time = strtotime("2008-12-14 8:21:00"); <-- PM
$stat = round(abs($to_time - $from_time)/60,2). "min";
我從這個得到的是1299分鐘
但我無法弄清楚如何使它輸出
21H:41米
首先,8:21:00
將被解釋爲上午8點,除非你使用DateTime::createFromFormat()
指定。
制定出時間差,用DateTime::diff()
:
$to = new DateTime("2008-12-13 10:42:00");
$from = new DateTime("2008-12-14 8:21:00");
$stat = $to->diff($from); // DateInterval object
echo $stat->format('%Hh:%Im');
這將顯示兩個時間之間的小時/分鐘的差別,但只到24小時。
如果需要超過24小時,你應該做到以下幾點:
$hours = $stat->days * 24 + $stat->h;
$minutes = $stat->i;
printf('%02sh:%sm', $hours, $minutes);
所有你需要包括AM和PM在你的日期字符串的第一,否則2008-12-14 8:21:00
將被解釋爲8:21 AM
現在兩個日期之間的差異是2019
即33小時:19米,你不能使用標準日期格式,因爲它們只支持24小時制。你應該保持$stat
爲整數,並與sprintf
像顯示它是這樣的:
echo sprintf('%02dh:%02dm', $stat/60, $stat%60);
這一次也不會返回正確的值時,有日期 –
之間超過24小時的$統計對象的實例[DateInterval ](http://au.php.net/DateInterval),查看如何提取日/月/年的文檔。 – Alex
所以,請刪除/編輯'format'行,因爲它不包含有關日期的任何信息併產生誤導性結果。 –