我需要创建DateTime间隔以将其与日期差异进行比较。这样的事情可能吗?
$week = new \DateTime("1 week");
答案 0 :(得分:0)
我认为你要找的是diff();
类中的DateTime
函数。
$dateOne = new DateTime('2015-10-11');
$dateTwo = new DateTime('2014-10-13');
$interval = $dateOne->diff($dateTwo);
echo $interval->format('%R%a days');
比较UNIX TimeStamp
$dateTime = new DateTime("@" . $someOtherTimeStamp);
$endTime = new DateTime("@" . time());
$interval = $dateTime->diff($endTime);
阅读材料
答案 1 :(得分:0)
好吧,您可以改用DateInterval课程。虽然你不能直接将'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演示。