我有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;
我需要两个日期之间差异的结果。
答案 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');
上面会输出
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()
方法中提供所需的格式。