如何计算两个日期之间的时间差?
例如:
day1=2006-04-12 12:30:00
day2=2006-04-14 11:30:00
在这种情况下,结果应该是 47 小时。
最佳答案
较新的 PHP 版本提供了一些名为 DateTime
、DateInterval
、DateTimeZone
和 DatePeriod
的新类。这个类的酷之处在于,它考虑了不同的时区、闰年、闰秒、夏令时等。除此之外,它非常易于使用。借助这些对象,您可以实现以下目标:
// Create two new DateTime-objects...
$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');
// The diff-methods returns a new DateInterval-object...
$diff = $date2->diff($date1);
// Call the format method on the DateInterval-object
echo $diff->format('%a Day and %h hours');
返回的 DateInterval 对象还提供了除 format
之外的其他方法。如果你只想要几个小时的结果,你可以这样:
$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');
$diff = $date2->diff($date1);
$hours = $diff->h;
$hours = $hours + ($diff->days*24);
echo $hours;
这里是文档的链接:
所有这些类还提供了一种操作日期的程序/功能方式。因此,请查看概述:http://php.net/manual/book.datetime.php
关于php - 计算PHP中2个日期之间的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108591/