MongoDB时间类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB时间类型相关的知识,希望对你有一定的参考价值。

mongdb时间类型

  • Date()  显示当前的时间
  • new Date  构建一个格林尼治时间   可以看到正好和Date()相差8小时,我们是+8时区,也就是时差相差8,所以+8小时就是系统当前时间
  • ISODate()  也是格林尼治时间
> Date()
Sun Jan 24 2016 20:39:57 GMT+0800 (CST)

> new Date()
ISODate("2016-01-24T12:40:24.035Z")

> ISODate()
ISODate("2016-01-24T12:52:33.341Z")

查看类型

> typeof Date()
string

> typeof new Date()
object

时间戳

> ISODate("2016-01-24T12:52:33.341Z").valueOf()
1453639953341

查找

>db.tb1.find({time:{$gt:new Date(1363746981289)}})
支持多种格式:
> db.tb1.insert({mydate:ISODate("2012-11-02 07:58:51")})

> db.tb1.insert({mydate:ISODate("20121102 07:58:51")})
> db.tb1.insert({mydate:ISODate("20121102")})

也可以直接操作:

>db.tb1.find({"mydate":{$gt:ISODate("2012-10-02T07:58:51Z")}})和db.tb1.find({"mydate":{$gt:new Date("2012-10-02T07:58:51Z")}})相同

存储 

MongoDB存储时间类型数据时,都是先转换为UTC时间,然后存储到数据库中

toLocaleString() 返回的是包含当前时区信息的时间字符串

> ISODate("2016-01-24T12:52:33.341Z").toLocaleString()
Sun Jan 24 2016 20:52:33 GMT+0800 (CST)

 

以上是关于MongoDB时间类型的主要内容,如果未能解决你的问题,请参考以下文章

在代码片段中包含类型转换

对这个带有 & 不带 = 的代码片段返回类型感到非常困惑

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

MongoDB PHP

一个具有两种显示类型的片段[关闭]

无法在 MongoDB(猫鼬)文档中追加数组