PHP 比较当前日期与指定日期

比较当前日期是否早于晚于等于指定日期

// 获取当前日期
$currentDate = new DateTime();

// 构建指定的日期
$specifiedDate = new DateTime('2023-12-2');

// 比较日期
if ($currentDate >= $specifiedDate) {
	echo "当前日期晚于等于指定日期。n";
} else {
	echo "当前日期早于指定日期。n";
}

这代码是不是挺神奇的,为什么两个对象能直接比较大小。ChatGPT 这样说的:

在PHP中,`DateTime`类实现了`DateTimeInterface`接口,该接口继承了`Comparable`接口。这就意味着`DateTime`对象可以直接使用比较运算符(如`<`、`<=`、`>`、`>=`)进行比较。

`Comparable`接口要求实现类必须实现`compareTo`方法,而`DateTime`类已经在内部实现了这个方法。这个方法会比较两个`DateTime`对象的日期和时间,然后返回一个整数,表示两者之间的关系。

因此,由于`DateTime`类实现了`Comparable`接口,你可以在代码中直接使用比较运算符来比较两个`DateTime`对象,而不需要显式调用`compareTo`方法。这样的设计使得日期和时间的比较变得更加方便。