2012-01-26 31 views
3

我想比较两个时间戳和基于60或10的时间差。 更准确地说,如果timestamp1-timestamp2比x小时和y更长(或不是)秒。PHP比较时间戳和实时差的差别

我使用DateTime和DateInterval类,但没有这样的功能,我找不到一个干净的解决方案。

感谢

+1

你有你'timestamp1'和'timestamp2'数据的例子吗? – sberry

+0

$ remainingTimeBeforeReceipt = $ TempReceiptDateTime-> getTimestamp() - $ ShipDateTime-> getTimestamp() – adieuuu

+1

'DateTime'和'DateInterval'中有这样的函数。请参阅我的回答 –

回答

8
$time1 = new DateTime("2011-01-26 01:13:30"); // string date 
$time2 = new DateTime(); 
$time2->setTimestamp(1327560334); // timestamps, it can be string date too. 
$interval = $time2->diff($time1); 
echo $interval->format("%H hours %i minutes %s seconds"); 

输出

11 hours 32 minutes 4 seconds 
+0

+1使用DateTime和DateInterval,正确确定小时数的唯一方法(并考虑到DST更改) – Arjan

2
$timestamp1 = strtotime('2012-01-26 14:00:00'); 
$timestamp2 = strtotime('2012-01-25 17:00:00'); 

if (abs($timestamp1 - $timestamp2) < 60 * 60 * 5 /* (5 hours) */) { 
    ... 
+0

谢谢,我只是忘记了秒数:s – adieuuu

0

都转换时间戳和实时的UNIX时间戳。然后简单地减去以获得秒差的数量。

0

随着datetime对象:

$interval = $TempReceiptDateTime->diff($ShipDateTime); 
echo $interval->format('%R%H:%I:%s days'); 

more