2012-01-27 28 views
0

我希望以min:sec格式计算2次差值b/w。所以我接近正确计算时间差的方法有什么缺陷

date("i:s",(strtotime($User['end_time']) - strtotime($User['start_time']))); 
+1

如果你让你的渴望输出比它是正确的:) – Rikesh 2012-01-27 05:47:56

+0

是的,我得到它,但有没有任何陷阱 – aWebDeveloper 2012-01-27 06:00:58

+0

不,我不这么认为,你的方式是正确的! – Rikesh 2012-01-27 06:02:35

回答

1

您可能会在某些服务器上遇到时区问题。

一个bettter方式将使用UTC时区进行计算:

$date = new DateTime('', new DateTimeZone('UTC')); 
$date->setTimestamp(strtotime($User['end_time']) - strtotime($User['start_time'])); 
echo $date->format('i:s'); 

另一件事,如果他们恰好1小时不同,其结果将是00:00

0

strtotime($User['end_time']) - strtotime($User['start_time'])给你几秒钟的差异。然后你将它传递给date,这样你就可以得到unix时间戳的日期和时间。