我在谷歌上搜索了两个小时,发现问题与Unix epoch有关。
我想做的是在php中进行倒计时。正如你在下面看到的那样,(给他们写信,让他们很容易被提及)。
B减去C等于A。但它给出的结果是:"31/12/69 19:00:08",但我希望使用"00/00/00 00:00:08"。
(A) 1969年12月31日19:00:08=(B)2015年3月25日00:13:26-(C)2015年03月25日01:13:18
这个问题导致了我倒计时的问题。当我想从10:00(分钟,秒)开始倒计时时,它从60:00开始倒计时,当它达到50:00时,倒计时停止。所以它有效!10分钟后,它停止了,但问题是,它从60开始倒计时。所以,我想它是由unix时代引起的。如果我能将日期中不必要的部分初始化为零或空,我就能解决问题。
$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>";
这是我代码的一部分。所以,当我这样做的时候,我遇到了问题;CCD_ 1。您看到的所有变量都包含由time()
函数生成的秒。
您没有共享任何代码,但我认为您减去两个时间戳来计算出以秒为单位的差异,然后将结果格式化为unix时间戳。
问题出在最后一步。当你减去这两个数字时,你确实得到了一个(大部分)正确的数字,但随后你决定使用(大概)date()
来显示。
相反,您可能希望尝试使用两个DateTime
对象,使用diff
来获得差异(作为DateInterval
对象),然后使用DateInterval::format
来获得您实际想要的格式。