【发布时间】:2017-10-26 11:32:24
【问题描述】:
我有一个系统,我需要添加一定数量的小数小时。 我一直在寻找,这就是我得到的,到目前为止它是最准确的方法,但仍然没有给我需要的答案
function calculateHours($hours){
$now = new DateTime("2017-10-25 10:23:00");
$time = array();
$time = explode(".", $hours);
$time [1] += $time [0]*60;
$now->modify("+".$time[1]." hours");
return $now;
}
$diff = 119.23;
$answer = calculateHours($diff);
echo $answer ->format('Y-m-d H:i:s');
我想要达到的答案是“2017-11-09 11:00:00”,而我收到的是“2017-10-25 12:22:23”
【问题讨论】:
-
您的问题似乎有几个问题。当我运行你的代码时,我得到了结果
2017-10-25 12:22:23。因此,要么开始日期不正确,要么您要添加的小时数不正确。此外,当将 119 乘以 60 时,这将计算 分钟,但您添加的是 秒(因此将小时乘以 3600,将分钟乘以 60)。 -
刚刚编辑过,我现在才意识到它给出的是“2017-10-25”而不是“2017-11-09”,并且我要添加的小时数是正确的(据我所知)。
-
$diff = 119.23是什么时间单位? -
小时,刚刚在代码上编辑了它:)
-
@MathewSGon 仍然没有加起来。当您将
119.23小时添加到2017-10-25时,它只会增加大约 5 天。所以你永远不会到达2017-11-09。
标签: php datetime timestamp strtotime