-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

この結果は正しいです。は、2 つの日付間の年、月、日、時、分、および秒の合計数であるdate_diff()a を返します。DateInterval

例: 1 日 1 時間 58 分 14 秒。これから を取得しようとすると、予想される合計時間数ではなく、hoursが取得されます。1その間隔を時間差だけに変換するには、日付計算を行う必要があります。

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