-1

我遇到日期差异问题。例如

            $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

4

1 回答 1

2

这个结果是正确的。date_diff()返回 a DateInterval,它是两个日期之间不同的年、月、日、小时、分钟和秒的总数。

例如:1 天 1 小时 58 分 14 秒。当您尝试从中获得时hours,您将获得1,而不是您期望的总小时数。您需要进行日期数学以将该间隔转换为小时数差异。

$hrs = $diffNoon->format('%h') + ($diffNoon->days * 24);
于 2014-10-30T14:11:20.950 回答