我一直在谷歌搜索过去2个小时,我发现问题与Unix时代有关。
我想做的是在php中倒计时。如下所示,(给他们字母以便轻松推荐)。
B减去C等于A.但它给了我这个:“31/12/69 19:00:08”但是我希望“00/00 / 00 00:00:08“。
(A)31/12/69 19:00:08 =(B)25/03/15 00:13:26 - (C)25/03/15 00:13:18
这个问题导致我倒计时出现问题。当我想从10点(Min,Sec)开始倒数时,它从60:00开始倒计时,当它到达50:00时倒数停止。所以它有效! 10分钟后停止但问题是,它从60开始倒计时。所以,它是由unix时代造成的。如果我可以在日期中将不必要的部分初始化为零或null,我可以解决问题。
$pastTime = $currentTime - $row['startTime'];
if($pastTime >= $row['durationTime']){
$processStatus = "Completed";
$remainingTime = 0;
}else{
$processStatus = "in Process";
$remainingTime = $durationTime - $pastTime;
}
echo "<td>" . date('i:s', $remainingTime) . "</td>";
echo "<td>$processStatus</td>";
echo "</tr>";
这是我的代码的一部分。所以,当我这样做时,我遇到了问题; date('i:s', $remainingTime)
。您看到的所有变量都包含由time()
函数生成的秒数。
答案 0 :(得分:0)
您没有共享任何代码,但我认为您减去两个时间戳以找出差异,然后将结果格式化为unix时间戳。
问题出在最后一步。当你减去这两个数字时,你会得到(大多数)正确的数字,但是你决定使用(大概)date()
进行显示。
相反,您可能想尝试使用两个DateTime
个对象,使用diff
来获取差异(作为DateInterval
个对象),然后使用DateInterval::format
来获取你真正想要的格式。