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

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

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

这两种方法都在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) 

显然这个家伙没有比较运算符。


FFIVE
浏览 452回答 3
3回答

哈士奇WWW

以下似乎确认了DateTime类的比较运算符:dev:~# php<?phpdate_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 -vPHP 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 GroupZend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologiesdev:~#

潇湘沐

从官方文档:从PHP 5.2.2开始,可以使用比较运算符比较 DateTime对象。$date1 = new DateTime("now");$date2 = new DateTime("tomorrow");var_dump($date1 == $date2); // falsevar_dump($date1 < $date2); // truevar_dump($date1 > $date2); // false对于5.2.2之前的PHP版本(实际上对于任何版本),您可以使用diff。$datetime1 = new DateTime('2009-10-11'); // 11 October 2013$datetime2 = new DateTime('2009-10-13'); // 13 October 2013$interval = $datetime1->diff($datetime2);echo $interval->format('%R%a days'); // +2 days
打开App,查看更多内容
随时随地看视频慕课网APP