PHP计算时间差:如何显示天数+小时分钟格式而非仅小时
解决时间差格式化问题
首先修正你的时间差计算逻辑:你现在用from减till得到的是负数,会导致gmdate处理异常,正确的应该用结束时间减开始时间,得到正的秒数差。另外注意时间字符串需要用引号包裹,否则PHP会将其识别为减法运算,导致strtotime无法解析。
直接用以下代码实现需求:
$row2['from'] = '2024-04-03 09:00:00'; $row2['till'] = '2024-04-04 21:00:00'; // 计算总秒数差 $totalSeconds = strtotime($row2['till']) - strtotime($row2['from']); // 拆分天数和剩余时分 $days = floor($totalSeconds / 86400); // 一天=86400秒,取整数天数 $remainingTime = gmdate("H:i", $totalSeconds % 86400); // 剩余秒数转成HH:MM格式 // 输出目标格式 echo "{$days}天,{$remainingTime}小时";
这段代码会输出:1天,12:00小时,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Matas Vasiliauskas
相关产品推荐
相关产品推荐

