在Stackoverflow上有很多这样的问题,在你把它标记为重复之前,让我告诉你,在我的情况下,这些都不起作用。
Date Difference in php on days?
Calculate the difference between date/times in PHP
Finding the number of days between two dates
How to calculate the difference between two dates using PHP?
以上是我检查过的问题。最后一个问题有Jurka
的答案,遗憾的是,这个答案也不起作用。所以这是我的代码:
$date1 = new DateTime(date('d-m-y'));
$date2 = new DateTime($etaDate);
$interval = $date1->diff($date2);
echo "difference " . $interval->days . " days ";
上述案例中的$etaDate
是03-02-16,当前日期是08-02-16所以它应该返回5天,但它返回一个非常高的数字 - 1826天。我尝试了不同的方法,也返回了同一天的数字。
日期值作为字符串存储在数据库中,以便在检索时我再次使用以下代码将其恢复为日期格式:
$newdate = DateTime::createFromFormat('d-m-y', $EntryDate);
$newdate->add(new DateInterval('P15D'));
$etaDate = $newdate->format('d-m-y');
$EntryDate
是一个保存数据库日期的变量,$etaDate
将其转换为日期格式。
答案 0 :(得分:1)
只需更改年份格式y to Y
即可。
请参阅示例:https://eval.in/514811
答案 1 :(得分:0)
试用此代码 // YYYY-MM-DD格式
$etaDate="2016-02-03";
$date1 = new DateTime(date('Y-m-d'));
$date2 = new DateTime($etaDate);
$interval = $date1->diff($date2);
echo "difference " . $interval->days . " days ";