这看起来应该是非常简单的事情,但是我已经暂时陷入页面错误这个问题,所以这里有.
看看PHP文档,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)
Run Code Online (Sandbox Code Playgroud)
显然这个家伙没有比较运算符.
编辑:显然我的假设是完全错误的(感谢Milen如此有效地说明这一点).有一个比较运算符,它工作得很好,谢谢.有时我真的很想念编译器.该错误在上面的代码中,我相信你会发现它比我快得多:).
我期待着您对解决方案简单性的尴尬.
编辑:当然,尴尬随之而来......
Mil*_*dev 416
以下似乎确认了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:~#
Run Code Online (Sandbox Code Playgroud)
小智 45
从官方文档:
从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
Run Code Online (Sandbox Code Playgroud)
对于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
Run Code Online (Sandbox Code Playgroud)
Jul*_*ien 30
您还可以比较纪元秒:
$d1->format('U') < $d2->format('U')
Run Code Online (Sandbox Code Playgroud)
来源:http://laughingmeme.org/2007/02/27/looking-at-php5s-datetime-and-datetimezone/ (关于DateTime的非常有趣的文章)
bla*_*bla 20
如果你想比较日期而不是时间,你可以使用这个:
$d1->format("Y-m-d") == $d2->format("Y-m-d")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
291990 次 |
| 最近记录: |