首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -比较两个mongodate

PHP -比较两个mongodate
EN

Stack Overflow用户
提问于 2014-02-06 15:35:56
回答 3查看 2.5K关注 0票数 2

我可以像下面这样比较两个mongodates吗?在我的测试中,它运行良好。但mongodates是对象,它们将来也会以同样的方式工作吗?

代码语言:javascript
复制
$d1 = new MongoDate(1391671630);
$d2 = new MongoDate(1391671631);

echo ($d1 < $d2); //returns 1 which is correct. 
//and i tried all other comparisons (>, ==, >=, <=). Everything works good. 
EN

回答 3

Stack Overflow用户

发布于 2014-02-06 16:13:08

您将需要使用MongoDate对象的sec属性:

代码语言:javascript
复制
$d1->sec < $d2->sec
票数 2
EN

Stack Overflow用户

发布于 2014-02-13 05:22:49

mongo驱动程序中的MongoDate类对比较运算符没有特殊支持。您看到的行为很可能是内部PHP行为,将两个对象与<<=>>=操作符进行比较会按顺序检查属性。碰巧MongoDate在$usec之前声明了它的$sec属性,所以这是可行的。我在PHP手册中没有找到这个行为的文档,但是在我期望找到它的页面上的this comment中讨论了它。

您可能想要跟踪PHP-226,因为有计划添加一个助手方法来返回MongoDate的浮点值(类似于microtime(true))。按原样,__toString()返回值没有多大帮助,因为微秒出现在秒数之前。

我还打开了PHP-979,将其作为功能请求进行跟踪(对比较运算符的重载支持)。

票数 1
EN

Stack Overflow用户

发布于 2014-02-06 16:19:26

这些驱动程序是由MongoDB的员工维护的,而且大多数都是这样。因此,作为基础驱动程序实现列出的大多数内容无论如何都将始终是规范的一部分。

在幕后,MongoDB实际上在内部将该值存储为一个纪元时间戳,并且MongoDate类确保将该值作为具有正确值的有效BSON类型通过网络传递。因此,使用内部识别的类型是您的优势所在,这样服务器端的日期比较就会按预期工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21596730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档