如何计算两个日期之间的差额(小时)?
例如:
day1=2006-04-12 12:30:00
day2=2006-04-14 11:30:00
在这种情况下,结果应该是47小时。
发布于 2010-06-24 17:20:28
$t1 = strtotime( '2006-04-14 11:30:00' );
$t2 = strtotime( '2006-04-12 12:30:00' );
$diff = $t1 - $t2;
$hours = $diff / ( 60 * 60 );
发布于 2010-06-24 17:20:01
你的答案是:
round((strtotime($day2) - strtotime($day1))/(60*60))
发布于 2014-01-30 05:30:04
获得两个日期(日期时间)之间的正确小时数的最简单方法是使用Unix时间戳中的差异,即使在夏令时更改的情况下也是如此。Unix时间戳是指自1970-01-01T00:00:00UTC以来经过的秒数,忽略闰秒(这是可以接受的,因为您可能不需要这种精度,而且很难将闰秒考虑在内)。
将带有可选时区信息的datetime字符串转换为Unix时间戳的最灵活方法是构造一个DateTime对象(也可以使用DateTimeZone作为构造函数中的第二个参数),然后调用它的getTimestamp方法。
$str1 = '2006-04-12 12:30:00';
$str2 = '2006-04-14 11:30:00';
$tz1 = new DateTimeZone('Pacific/Apia');
$tz2 = $tz1;
$d1 = new DateTime($str1, $tz1); // tz is optional,
$d2 = new DateTime($str2, $tz2); // and ignored if str contains tz offset
$delta_h = ($d2->getTimestamp() - $d1->getTimestamp()) / 3600;
if ($rounded_result) {
$delta_h = round ($delta_h);
} else if ($truncated_result) {
$delta_h = intval($delta_h);
}
echo "Δh: $delta_h\n";
https://stackoverflow.com/questions/3108591
复制相似问题