为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
FFIVE 2019-08-01 16:15:46
如何在PHP 5.2.8中比较两个DateTime对象?看看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) 显然这个家伙没有比较运算符。
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

以下似乎确认了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:~#


查看完整回答
反对 回复 2019-08-01
?
潇湘沐

TA贡献1816条经验 获得超6个赞

从官方文档:


从PHP 5.2.2开始,可以使用比较运算符比较 DateTime对象。


$date1 = new DateTime("now");

$date2 = new DateTime("tomorrow");


var_dump($date1 == $date2); // false

var_dump($date1 < $date2); // true

var_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


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 451 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信