【发布时间】:2010-10-31 22:58:05
【问题描述】:
查看 PHP 文档,DateTime 对象的以下两种方法似乎都可以解决我的问题:
- DateTime::diff :获取差异并使用它来确定哪个更古老。
- DateTime::getTimestamp:获取 UNIX 时间戳并进行比较。
这两种方法都在doco 中标记为在 >= 5.3 版本中可用(毫不奇怪,如果我尝试调用它们,我会发现它们不存在)。我找不到 5.2.8 的任何特定文档,所以我不确定我的版本中是否有等效的方法。我有Googled 的问题,并找到了一系列不拘一格的解决方案,但没有一个能满足我非常简单的要求:
- 如何比较两个 DateTime 对象?
- 在哪里可以找到以前 PHP 版本的文档?具体是 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 如此有效地说明这一点)。有一个比较运算符,它工作得很好,谢谢。有时我真的很想念一个编译器。错误就在上面的代码中,我相信你会比我发现它的速度快得多:)。
【问题讨论】:
-
关于缺少编译器 - 将“error_reporting”设置为“E_ALL”,您会收到类似“Notice: Undefined variable: start_dt in ...”的通知。
-
另外,请在
$_POST变量上使用 htmlentities,否则小猫将被杀死。 -
错误在哪里? :p ,我也在做 U_U 。提前致谢!
-
@castarco 我初始化了 $st_dt ,但我与未初始化的 $start_dt 进行了比较。检查您的变量名称,也许遵循 Milen 的建议并将 error_reporting 设置为 E_ALL 以获得未定义的变量警告。 :)