创建日期时间间隔

时间:2015-09-14 12:26:37

标签: php datetime

我需要创建DateTime间隔以将其与日期差异进行比较。这样的事情可能吗?

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

2 个答案:

答案 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);

阅读材料

diff();

答案 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演示。