看一下PHP文档,DateTime对象的以下两种方法似乎都可以解决我的问题:
DateTime
这两种方法在doco中都标记为在版本>=5.3中可用(并且毫不奇怪,如果我尝试调用它们,我会发现它们不存在)。我找不到5.2.8的任何特定文档,所以不确定我的版本中是否有等效的方法。我曾经用Google搜索这个问题,并找到解决方案,其中没有回答我很简单的要求,兼收并蓄的范围:
在某些情况下,我有以下代码:
$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如此有效地说明了这一点)。有一个比较运算符,它很好用,谢谢。有时我真的很想念编译器。该错误在上面的代码中,我相信您会发现它的速度比我快:)。
以下内容似乎可以确认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:~#