我遇到日期差异问题。例如
$nToday = date("Y-m-d h:i:s");
$deliveryDateNoon = $_SESSION['sp_date']." 12:00:00";
$date1 = new DateTime($nToday);
$date3 = new DateTime($deliveryDateNoon);
$diffNoon = $date3->diff($date1);
$hrs = $diffNoon->format('%h');
$ntoday="2014-10-30 10:01:46"
$deliveryDateNoon="10/31/2014 12:00:00"
$hrs
获得的值是...... 1
答案 0 :(得分:2)
这个结果是正确的。 date_diff()
会返回DateInterval
,这是两个日期之间的总年数,月数,天数,小时数,分钟数和秒数。
例如:1天1小时58分14秒。当您尝试从中获取hours
时,您将获得1
,而不是您期望的总小时数。您需要进行日期数学运算才能将该时间间隔转换为差异小时数。
$hrs = $diffNoon->format('%h') + ($diffNoon->days * 24);