我需要创建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();