创建日期时间间隔


Create date time interval

我需要创建DateTime间隔来与日期差进行比较。这样的事情可能发生吗?

$week = new 'DateTime("1 week");

那么,您可以使用DateInterval类来代替。虽然您不能将相对时间格式(如'1 week')直接传递给它的构造函数,但是有一个有用的静态方法createFromDateString()支持这种语法:

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

问题是DateInterval实例在PHP中没有可比性(详细信息请查看此功能请求):

$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。在演示。

我认为你正在寻找的是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();