为什么 PHP 在两个日期之间返回错误的日子



Stackoverflow上有很多这样的问题,在你将其标记为重复之前,让我告诉你,在我的情况下,这些问题都不起作用。

日期 天上的 php 差异?

在 PHP 中计算日期/时间之间的差异

日期与 php 的差异

查找两个日期之间的天数

如何使用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将其转换为日期格式。

只需将年份的格式从y to Y更改即可。

参见示例:https://eval.in/514811

试试这段代码年-月-日格式

$etaDate="2016-02-03";
$date1 = new DateTime(date('Y-m-d'));
$date2 = new DateTime($etaDate);
$interval = $date1->diff($date2);
echo "difference " . $interval->days . " days ";

最新更新