2015-09-02 77 views
1

我知道如何计算两个日期之间的天数,如下所示,但是,如果过去如何将差异作为负数返回?计算日期之间的日期,但显示负值PHP

这是我使用的是什么:

$today = new DateTime('now'); // today is 2015-09-02 

$date1 = new DateTime("2015-08-13"); // 20 days ago 

$diff = $today->diff($date1)->format("%a"); 

echo "diff is $diff"; // shows 20 but I want it to return -20 

我试图扭转变量,但它似乎并不关心顺序。

+0

strtotime做什么呢?或者DateTime类对你来说是强制性的? –

+0

人们应该阅读PHP文档。 http://php.net/manual/en/datetime.diff.php。这是非常有据可查的。 – Amarnasan

+0

@Abdulla @Abdulla我确实说过我曾试着在问题 –

回答

3

DateInterval具有invert property,指定它们是正面还是负面。

可以输出它像

$interval->format("%r%a"); 

r代表

号 “ - ” 负时,空当积极

DateInterval::format docs

+0

我在例子中找到了“%R”,但是......你在哪里发现“%r”返回时为空正?找不到它。 – Amarnasan

+1

http://php.net/manual/en/dateinterval.format.php –

0
$today = new DateTime('now'); // today is 2015-09-02 

$date1 = new DateTime("2015-08-13"); // 20 days ago 

$diff = $today->diff($date1)->format("%r%a"); 

输出将为-20。你也可以交换日期喜欢下面的例子。输出将是20.

$today = new DateTime('now'); // today is 2015-09-02 

$date1 = new DateTime("2015-08-13"); // 20 days ago 

$diff = $date->diff($today)->format("%r%a");