2014-10-30 125 views
-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

回答

2

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

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

$hrs = $diffNoon->format('%h') + ($diffNoon->days * 24); 
+1

演示是你最大的卖家;) – 2014-10-30 14:27:56

+0

看起来是所有http://stackoverflow.com/q/26680456/走了之后 - *再见*;) Buongiorno公司! – 2014-10-31 18:02:30