PHP比较时间戳

时间:2011-05-16 16:09:02

标签: php date timestamp

当试图与php时间戳进行比较时,我似乎得到了一个off值。不确定我错过了什么。

我希望我的输出结果像

自x以来3天5小时10分钟

我正在试着用一些应该只是分钟差异的东西,但最终获得非常关闭的数字(31天19小时11分钟)

$timesince = time() - $firstdate;
$dsince = date("d",$timesince);
$hsince = date("G",$timesince);
$msince = date("i",$timesince);

我猜我需要采取不同的方式吗?

3 个答案:

答案 0 :(得分:4)

date()接受绝对时间戳值,而不是两个值之间的差异。你需要手动解析差异(除以3600,然后除以60等)这里的评论中有一些例子http://php.net/manual/en/function.time.php

答案 1 :(得分:1)

正如您可能已经知道的那样,

time()以Unix时间戳格式返回当前时间。 $firstdate必须采用此格式,或者应使用strtotime() PHP函数进行转换。

您使用的解决方案是错误的 - 这对于较长的差异等不起作用。您必须进行一些额外的计算,将差异转换为差异,通知天数,小时和分钟。

修改

您可以在Kohana 3 PHP famework(span()方法)中找到示例和正确的解决方案:http://kohanaframework.org/3.1/guide/api/Kohana_Date#span

答案 2 :(得分:0)

您可以尝试找到here on php.net找到的功能。