小编典典

如何比较PHP 5.2.8中的两个DateTime对象?

php

看一下PHP文档,DateTime对象的以下两种方法似乎都可以解决我的问题:

  • DateTime :: diff]:获取差异并使用该差异确定哪个更古老。
  • DateTime :: getTimestamp:获取UNIX时间戳并进行比较。

这两种方法在doco中都标记为在版本>=5.3中可用(并且毫不奇怪,如果我尝试调用它们,我会发现它们不存在)。我找不到5.2.8的任何特定文档,所以不确定我的版本中是否有等效的方法。我曾经用Google搜索这个问题,并找到解决方案,其中没有回答我很简单的要求,兼收并蓄的范围:

  • 如何比较两个DateTime对象?
  • 在哪里可以找到先前PHP版本的doco?特别是版本5.2.8?

在某些情况下,我有以下代码:

$st_dt = new DateTime(verifyParam ('start_date'));
$end_dt = new DateTime(verifyParam ('end_date'));

// is the end date more ancient than the start date?
if ($end_dt < $start_dt)

显然,此人没有比较运算符。

编辑

显然
我的假设是完全错误的(感谢Milen如此有效地说明了这一点)。有一个比较运算符,它很好用,谢谢。有时我真的很想念编译器。该错误在上面的代码中,我相信您会发现它的速度比我快:)。


阅读 330

收藏
2020-05-26

共1个答案

小编典典

以下内容似乎可以确认DateTime类具有比较运算符:

dev:~# php
<?php
date_default_timezone_set('Europe/London');

$d1 = new DateTime('2008-08-03 14:52:10');
$d2 = new DateTime('2008-01-03 11:11:10');
var_dump($d1 == $d2);
var_dump($d1 > $d2);
var_dump($d1 < $d2);
?>
bool(false)
bool(true)
bool(false)
dev:~# php -v
PHP 5.2.6-1+lenny3 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 26 2009 20:09:03)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
dev:~#
2020-05-26