PHP如何计算两个日期之间的小时及剩余分钟?
解决PHP计算日期差中剩余分钟的问题
嘿,我来帮你搞定这个计算剩余分钟的问题!你的原脚本已经能算出天数和小时,但只需要稍微调整一下计算逻辑,就能精确得到剩余的分钟数啦。
修改后的完整代码
<?php $datestr = "2011-09-23 19:10:18"; $date = strtotime($datestr); $diff = $date - time(); // 获取目标时间与当前时间的秒数差 // 处理目标时间已过去的情况(可选,避免出现负数) if ($diff < 0) { echo "目标时间已经过去啦!"; exit; } $days = floor($diff / 86400); // 86400 = 60*60*24,一天的秒数 $remaining_after_days = $diff % 86400; // 计算完天数后剩余的秒数 $hours = floor($remaining_after_days / 3600); // 3600 = 60*60,一小时的秒数 $remaining_after_hours = $remaining_after_days % 3600; // 计算完小时后剩余的秒数 $minutes = floor($remaining_after_hours / 60); // 计算剩余分钟数 echo "$days days $hours hours $minutes minutes remain<br />"; ?>
关键调整说明
- 原脚本用
round()计算小时可能会出现四舍五入的误差,改成floor()配合取余运算(%),能更精准地拆分出剩余的时间单位 - 通过分步取余,我们可以依次从总秒数中剥离天数、小时数,最后剩下的秒数就能直接算出剩余分钟数
- 额外加了一个负数判断,避免目标时间在过去时输出奇怪的负数结果(这一步是可选的,根据你的需求决定是否保留)
这样调整后,就能准确显示天、小时、分钟的剩余时间啦!
内容的提问来源于stack exchange,提问作者Walrus




