2015-09-02 105 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");