需要有关UNIX纪元的帮助

时间:2015-03-25 04:21:14

标签: php epoch

我一直在谷歌搜索过去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()函数生成的秒数。

1 个答案:

答案 0 :(得分:0)

您没有共享任何代码,但我认为您减去两个时间戳以找出差异,然后将结果格式化为unix时间戳。

问题出在最后一步。当你减去这两个数字时,你会得到(大多数)正确的数字,但是你决定使用(大概)date()进行显示。

相反,您可能想尝试使用两个DateTime个对象,使用diff来获取差异(作为DateInterval个对象),然后使用DateInterval::format来获取你真正想要的格式。