2013-02-27 53 views
0

IM拼命減去 兩個日期,但沒有得到正確的結果後得到的日期甲的日期,其結果是1970年1月7日05:00:00,但我需要的結果,2013年2月7日12時02分00秒提取兩個日期,顯示結果日期甲

$start_date =strtotime('2013-02-13 12:02:00'); 
$end_date =strtotime('2013-02-20 12:02:00'); 
$total = ($start_date - $end_date); 
echo date("Y-m-d H:i:s",$total); 
+0

減去一個日期的結果代碼從另一個是一個時期,而不是另一個日期。爲什麼這會是2013-02-07 12:02:00? – 2013-02-27 06:55:38

+0

@ user1869193,順便說一句,這是不以任何方式的區別 – 2013-02-27 07:00:17

回答

2

由於PHP 5.3,你可以用DateInterval類一起使用DateTime::diff()方法:

<?php 

$start = new DateTime('2013-02-13 12:02:00'); 
$end = new DateTime('2013-02-20 12:02:00'); 

$interval = $end->diff($start); 
echo $interval->format('%Y-%M-%D %H:%I:%S'); 

此外,是PHP5.3的假想方式,因爲它處理時區,夏令時(閏小時)和閏年正確。

2

你得到正確的結果作爲減去兩個日期後的結果爲7天,這被添加到默認日期1970-01-01

0

嘗試以下

$date2 ='2013-02-13 12:02:00'; 
$date1 ='2013-02-20 12:02:00'; 

$diff = abs(strtotime($date2) - strtotime($date1)); 

$years = floor($diff/(365*60*60*24)); 
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); 
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 

printf("%d years, %d months, %d days\n", $years, $months, $days);