【发布时间】:2014-07-03 21:50:17
【问题描述】:
$time1 = "14:45";
$time2 = "15:55";
list($hours, $minutes) = explode(':', $time1);
$startTimestamp = mktime($hours, $minutes);
list($hours, $minutes) = explode(':', $time2);
$endTimestamp = mktime($hours, $minutes);
$seconds = $endTimestamp - $startTimestamp;
$minutes = ($seconds / 60) % 60;
$hours = round($seconds / (60 * 60));
echo "<b>$hours</b> hours and<b>$minutes</b> minutes</b>";
如果变量 time1 小于变量 time2,则此代码运行良好,但如果 time1 为“23:35”且 time2 为“01:40”,它将输出“-22 小时 -55 分钟”。
我该如何纠正这个问题,即使 time1 低于 time2 变量,它仍然会输出两个时间之间的小时和分钟
此代码将采用两次示例“14:45”和“16:33”并计算每次之间的小时数和分钟数,但如果“time1”低于"time2" (time1 和 time2 是变量)
【问题讨论】:
-
使用 ABS() 函数应用于减法
-
这取决于 23:35 是一天,01:40 是下一天,是否是同一天。
-
23:35 是一天,01:40 是另一天的清晨
-
@LuisSiquot 我怎么能这样做?,ABS 不只是去掉“-”吗?
-
你必须给出日期,一天比另一天大,否则你只能得到同一天两次之间的秒数。
标签: php