如何从两个日期之间的差异得到结果?

时间:2017-06-07 22:38:08

标签: php date

我有php代码

$today_date = date('d/m/Y H:i:s');
$Expierdate = '09/06/2017 21:45:03';
$remaindate = date_diff($today_date,$Expierdate);       
echo $remaindate;

我需要两个日期之间差异的结果。

1 个答案:

答案 0 :(得分:1)

date_diff()需要DateTimeInterface作为参数。换句话说,您需要首先使用new DateTime()创建DateTime对象,如下所示。

$today_date = new DateTime();
$Expierdate = new DateTime('09/06/2017 21:45:03');
$remaindate = $today_date->diff($Expierdate);
echo $remaindate->format('%a days');

Live demo

上面会输出

  

90天

因为今天是6月8日,格式09/06/2017是9月6日 - 因为您正在使用美国格式(MM/DD/YYYY)。

如果你在6月9日(明天),你需要使用欧洲格式(MM-DD-YYYY,请注意破折号而不是斜线)。您也可以使用DateTime::createFromFormat()从设置格式创建,因此您当前的格式09/06/2017将被解释为6月9日。那么代码就是

$today_date = new DateTime();
$Expierdate = DateTime::createFromFormat('d/m/Y H:i:s', '09/06/2017 21:45:03');
$remaindate = $today_date->diff($Expierdate);
echo $remaindate->format('%a days');

输出(live demo

  

1天

在任何情况下,$remaindate都包含一些可以使用的属性(请参阅手册),或者您可以根据自己的喜好对其进行格式化,方法是在format()方法中提供所需的格式。