时间令人困惑……如何计算PHP中从PM到AM的时间?
例如22:00:00(晚上10点)到02:00:00(02am)应该给04小时过去.相反,我的代码返回-08小时
function hours_elapsed()
{
$timestart = strtotime("22:00:00");
$timestop = strtotime("02:00:00");
$time_diff = $timestop - $timestart; //time difference
return gmdate("h", $total_hours);
}
很明显,代码以24小时格式计算,所以当然它返回-08但是如何在没有24小时约束的情况下获得时间…当它通过午夜标记时?
解决方法:
-8小时是4小时.如果数字是负数,只需添加12:
$time_diff = $timestop - $timestart; //time difference
if ($time_diff < 0) {
$time_diff += 12;
}
但是,如果您的日期相隔超过一天,这对您没有帮助.您还需要指定日期(如当月的日期),以告诉PHP这些时间是不同的.
标签:php,datetime,time
来源: https://codeday.me/bug/20190723/1512650.html