2012-06-02 76 views

回答

0
echo (strtotime('02/12/2012') - strtotime('02/11/2012'))/(24*60*60); 

該行將兩個日期轉換爲unix時間戳,將它們相減並將其除以一天中的秒數。

2

試試這個

function dateDiff ($d1, $d2) { 

    return round(abs(strtotime($d1)-strtotime($d2))/86400); 

} 

該函數使用PHP ABS()絕對值總是返回一個正數作爲兩個日期之間的天數。

2

PHP> = 5.3,你可以使用DateTime::Diff

<?php 
    $datetime1 = new DateTime('2009-10-11'); 
    $datetime2 = new DateTime('2009-10-13'); 
    $interval = $datetime1->diff($datetime2); 
    echo $interval->format('%R%a days'); 
?> 
+0

這可能比使用strtotime()慢得多,但它是一種替代方案;) – Jeroen

+0

@Jeroen:雖然確實考慮到了DST/Leap年份和其他因素的考慮...... –

+0

這會造成什麼不同?由strtotime()返回的UNIX時間戳只是自1970年1月1日以來的秒數,因此會自動「考慮」閏年。 – Jeroen

0

您可以將日期轉換爲時間戳用的strtotime()函數:

$date1 = strtotime("02/11/2012"); 
$date2 = strtotime("02/12/2012"); 
$difference = $date1 - $date2; 

然後,你必須在幾秒鐘之差,其是一個新的時間戳,因此您可以使用date()函數將其轉換爲日期:

$days = date("d", $difference);