2016-12-01 98 views
4

我有兩個日期變量:如何使用PHP計算天數的兩個字符串日期的差異?

$dnow = "2016-12-1"; 
$dafter = "2016-12-11"; 

我想這個計算兩個日期這是在字符串格式讓我怎麼計算的區別? 我用

date_diff($object, $object2) 

但預計兩個日期對象,我在字符串格式 日期,使用date_diff後,我獲得以下錯誤

消息:類DateInterval的對象無法轉換爲字符串。

+2

的可能的複製[如何計算使用PHP的兩個日期之間的區別?( http://stackoverflow.com/q uestions/676824/how-to-calculate-the-difference-between-dates-using-php) – Ronald

+3

[查找兩個日期之間的天數]可能的重複(http://stackoverflow.com/questions/2040560 /發現日期之間的日期) – Mohammad

回答

4

試試這個,使用date_create

$dnow = "2016-12-1"; 
$dafter = "2016-12-11"; 
$date1=date_create($dnow); 
$date2=date_create($dafter); 
$diff=date_diff($date1,$date2); 
print_r($diff); 

DEMO

2

您可以使用strtotime函數創建兩個日期的時間戳並比較這些值。

<?php 

$start = strtotime('2016-12-1'); 
$end = strtotime('2016-12-11'); 
$diffInSeconds = $end - $start; 
$diffInDays = $diffInSeconds/86400; 
+0

代碼返回差分時間秒。你應該把它轉換成一天。 – Mohammad

+0

一天有86400秒,所以用這個數字除以結果。 – Jerodev

2
$datetime1=date_create($dnow); 
$datetime2 = date_create($dafter); 
$interval = date_diff($datetime1, $datetime2); 
echo $interval->format('%R%a days'); 
//%R is used to show +ive or -ive symbol and %a is used to show you numeric difference 
0
$dnow = "2016-12-1"; 
$dafter = "2016-12-11"; 
$dnow=date_create($dnow); 
$dafter=date_create($dafter); 
$difference=date_diff($dnow,$dafter); 
+0

重複@krunal答案。 – Mohammad

+0

請刪除您的評論我已編輯答案 – 2016-12-01 14:55:59

+0

您只更改了變量名稱,但解決方案相同。 – Mohammad

相關問題