首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >24小时时钟系统中的PHP时差问题

24小时时钟系统中的PHP时差问题
EN

Stack Overflow用户
提问于 2018-09-02 20:42:07
回答 1查看 44关注 0票数 2

我试图计算两个不同时间之间的时间,并以小时为单位输出它们。它将显示给客户,以查看服务将花费多长时间。

这是我的代码:

代码语言:javascript
复制
$datetime1 = new DateTime($timeFROM);
$datetime2 = new DateTime($timeTO);
$interval = $datetime2->diff($datetime1);
$hour_decimal = number_format(intval($interval->format('%H')) + round(intval($interval->format('%I')) / 60, 2), 2, '.','');
echo $hour_decimal;

这段代码对于传统的工作很好,但是晚上的工作变得复杂了,因为如果第二个时间值($timeTO)是在00:00之后,它计算的是从$timeTO$timeFROM,而不是$timeFROM$timeTO

示例:

代码语言:javascript
复制
$timeFROM = "6:00";
$timeTO = "8:00";

输出= 2.00,这是正确的。

示例2:

代码语言:javascript
复制
$timeFROM = "23:30";
$timeTO = "1:00";

输出= 22.50,这是错误的。应该是1.50

看起来,我需要强制函数总是从$timeFROM计算到$timeTO,而不是相反,不管哪个值更大。

有什么主意吗?在google中找不到任何东西,也不知道如何才能确切地要求google。对不起,解决办法可能很简单!

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-02 20:56:33

如果只想进行前向计算,则如果datetime2小于datetime1,则添加24小时:

代码语言:javascript
复制
if ($datetime2 < $datetime1) {
    $datetime2->add(new DateInterval("PT24H"));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52140878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档