0

我必须找到到期日期之前的日子。我尝试使用 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 天)?谢谢

4

1 回答 1

2

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

echo $diff->format('%r%d');
于 2013-11-05T14:45:13.660 回答