计算时差的方法有哪些陷阱


What are the pitfalls in the approach to calculate time diff

我想以min:sec格式计算两次b/w差。我的方法正确吗

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

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

更好的方法是使用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

strtotime($User['end_time']) - strtotime($User['start_time'])以秒为单位提供差异。然后将其传递给date,这样您就可以获得unix时间戳为的日期的分秒。