2015-09-14 137 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();