我的朋友问我,她如何在PHP中创建和比较日期。因为我知道PHP中有一个DateTime类,所以我告诉她搜索并使用它一旦被理解,但是我不确定比较的内容。所以我在谷歌上搜索了如何比较PHP中的日期。我认为DateTime类使用一些内置的方法来比较日期。但令我惊讶的是,代码看起来是这样的:
$today_dt = new DateTime($today);
$expire_dt = new DateTime($expire);
if ($expire_dt < $today_dt) { /* Do something */ }我不明白的是,如何使用像<这样的比较运算符来比较两个“对象”。我认为您只能使用比较运算符来比较原始数据类型。那么PHP如何使用比较运算符来比较两个“对象”呢?
发布于 2017-04-16 05:53:54
它没有很好的文档化,但是当比较对象时,PHP按照声明的顺序逐个比较成员变量,直到它找到第一个不均匀变量,并在此基础上返回结果。
这里有更多详细信息:http://us3.php.net/manual/en/language.oop5.object-comparison.php#98725
发布于 2017-04-16 06:04:03
是的,通常情况下,您的->是正确的,但是对于PHP内置类(如DateTime ),这是不同的。objects。
我希望有一个实现"__compare“魔术方法来实现比较。但是,就目前而言,您有两个选项:
编辑阅读了@WhatHaveYouTriedSoFar上面的答案: 1)您可以使用比较对象的方式,“在找到的第一个不平等属性处停止比较操作并返回”(http://us3.php.net/manual/en/language.oop5.object-comparison.php#98725)
2)您可以创建自己的“比较”方法。
https://stackoverflow.com/questions/43434062
复制相似问题