2015-09-14 184 views
-1

我需要創建日期時間間隔以將其與日期差異進行比較。是這樣的可能嗎?創建日期時間間隔

$week = new \DateTime("1 week"); 
+0

目前還不清楚你在問什麼?你已經試過了嗎? –

+0

我很抱歉,我剛剛嘗試了我所寫的內容並且它可以正常工作。 –

回答

0

那麼,你可以使用DateInterval類代替。雖然你無法通過相對timeformats如'1 week'成直接的構造,有一個有用的靜態方法createFromDateString()支持這種語法:

$weekInterval = \DateInterval::createFromDateString('1 week'); 

的問題是,DateInterval情況下是沒有可比性的PHP(檢查this feature request瞭解詳細信息) :

$someInterval = (new \DateTime('2015-09-14'))->diff(new \DateTime('2015-09-13')); 
var_dump($weekInterval > $someInterval); // false somehow 

DateTime然而,實例是可比較的。因此,一種可能的解決方法是比較將兩個DateInterval添加到同一個固定日期的結果。例如:

$now = new \DateTimeImmutable(); 
var_dump($now->add($weekInterval) > $now->add($someInterval)); // true 

Eval.in demo。

0

我想你正在尋找的是在DateTime類的diff();功能。

$dateOne = new DateTime('2015-10-11'); 
$dateTwo = new DateTime('2014-10-13'); 
$interval = $dateOne->diff($dateTwo); 

echo $interval->format('%R%a days'); 

UNIX時間戳比較

$dateTime = new DateTime("@" . $someOtherTimeStamp); 
$endTime = new DateTime("@" . time()); 
$interval = $dateTime->diff($endTime); 

閱讀材料

diff();