Php面向对象式日期比较

时间:2011-09-01 16:39:21

标签: php date comparison

在OOP方面,您更喜欢比较日期?您怎么看?

$date1 = new Date();
...
$date2 = new Date();

if ($date1 > $date2) {
    ...
}

请不要举例如strtotime等,只有OOP。

2 个答案:

答案 0 :(得分:3)

如果您使用的是PHP DateTime对象,则可以使用标准比较运算符比较日期。有关详细信息和示例,请参阅DateTime::diff manual page

以下是手册中的示例#2:

$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);

答案 1 :(得分:0)

如果Date应该是内部DateTime类,那么您的代码绝对没问题。但如果Date是自定义类,则代码将无法按预期工作。与其他编程语言不同,PHP不允许运算符重载,这是代码工作所必需的。你需要一些东西来告诉PHP如何在类的实例上使用比较运算符,因为PHP无法知道如何比较$date1$date2并确定哪一个更大。

然而,你可以在你的班级上定义一些比较方法......

$date1->isLargerThan($date2);