php DateTime diff方法行为

时间:2013-11-05 14:41:58

标签: php datetime dateinterval date-math

我必须找到截止日期之前的日子。 我尝试使用DateTime类的diff方法。

$dataexp = 2013-11-06 00:00:00 ;
$now = 2013-11-05 13:00:00 ;

$dtn = new DateTime('now');
$dte = new DateTime($dataexp);

$diff = $dtn->diff($dte);

$days = sprintf("%01d", $diff->days);

$days ---> display 1

我的问题是如果dataexp是过去的1天,diff的结果是1而不是-1

$dataexp = 2013-11-04 00:00:00 ;
$now = 2013-11-05 13:00:00 ;

$dtn = new DateTime('now');
$dte = new DateTime($dataexp);

$days = sprintf("%01d", $diff->days);

$days ---> display 1

我可以用什么方法来获得我想要的东西? (-1天)?谢谢

1 个答案:

答案 0 :(得分:2)

请参阅DateInterval::format(),特别是r格式字符。

echo $diff->format('%r%d');