需要有关UNIX epoch的帮助


Need help about UNIX epoch

我在谷歌上搜索了两个小时,发现问题与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来获得您实际想要的格式。