以 PHP 计算 2 个日期之间的小时数

2022-08-30 07:10:30

如何计算两个日期之间的小时之差?

例如:

day1=2006-04-12 12:30:00
day2=2006-04-14 11:30:00

在这种情况下,结果应为 47 小时。


答案 1

较新的 PHP 版本提供了一些名为 、 和 的新类。这个课程很酷的地方是,它考虑了不同的时区,闰年,闰秒,夏季等。最重要的是,它非常易于使用。以下是借助此对象所需的内容:DateTimeDateIntervalDateTimeZoneDatePeriod

// 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


答案 2
$t1 = strtotime( '2006-04-14 11:30:00' );
$t2 = strtotime( '2006-04-12 12:30:00' );
$diff = $t1 - $t2;
$hours = $diff / ( 60 * 60 );

推荐