1
我已经用mongo db(通过PHP)声明并且有日期格式的问题。(“不是美国 - ”)在Mongo DB中的日期
用户将有一个简单的输入日期,如01.01.2016或31.12.2016。我应该如何在Mongo中储存这些日期?
我搜索,发现类似
- 转换的方式来ISODate日期和保存这个日期;上查找()再转让该日期DD.MM.YYYY
- 使用MongoDate的组合(的strtotime( “US-日期,格式”))
但我不喜欢改变我的DD。 mm.yyyy格式为美国,然后保存。在find()后面。
如果我存储dd.mm.yyyy我无法排序因为它将被作为一个字符串处理。
> db.test.find({"date": {$exists: true}}).sort({date: 1}).pretty()
{ "_id" : ObjectId("572f524c8cf7decc1f0041a9"), "date" : "11.10.2016" }
{ "_id" : ObjectId("572f52338cf7dea8110041ab"), "date" : "11.12.2015" }
{ "_id" : ObjectId("572f521a8cf7ded51e0041aa"), "date" : "11.12.2016" }
{ "_id" : ObjectId("572f523f8cf7dedf1f0041aa"), "date" : "11.12.2017" }
{ "_id" : ObjectId("572f50ab8cf7dec51f0041a9"), "date" : "12.12.2016" }
在mysql/postgres中我只是定义日期字段,它会自动处理。在mongo中是否有相同的方式,还是必须通过3种方式来完成?
谢谢你的帮助!我花了一段时间才回到这个问题。 – wuza
我现在使用一些简单的像这样,如果别人需要一个快速的解决方案: ' 功能convertToDatabaseValue($值){ ... \t回报新MongoDate(的strtotime($值)); } \t 功能convertToPHPValue($值) { ... 返回日期( 'd.m.Y',$值 - >秒); ; }' – wuza