如何使用PHP计算天数的两个字符串日期的差异?

如何使用PHP计算天数的两个字符串日期的差异?

问题描述:

我有两个日期变量:如何使用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

试试这个,使用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

您可以使用strtotime函数创建两个日期的时间戳并比较这些值。

<?php 

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

代码返回差分时间秒。你应该把它转换成一天。 – Mohammad

+0

一天有86400秒,所以用这个数字除以结果。 – Jerodev

$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 

$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