IT虾米网

mongo date 类型详解

shasha 2021年06月15日 编程语言 217 0

mongo的date类型跟javascript的date类型一样,而javascript的date类型来源于java的java.util.Date,所以api基本一样,都有接收毫秒数的构造参数、获取毫秒数的getTime()。关于Date的用法有以下几个点

构造方法

无参构造

new Date()用来创建date对象,注意,new Date()不同于Date(),Date()只是调用了方法,没有创建对象,Date()方法返回时间字符串。

Date() 
"Wed Oct 12 2016 20:31:34 GMT+0800 (中国标准时间)"

有参构造

Date提供了有参构造来接收参数,参数值是一个毫秒数整数值,表示从1970年1月1日子夜至今的毫秒数。因为计算毫秒数比较麻烦,所以Date提供了Date.UTC()和Date.parse()来返回毫秒数。

Date.parse()

Date.parse(string)参数是时间格式的字符串,一般来说按照 月/日/年 格式,也可以使用英语。

Date.parse("12/10/2016") 
输出:1481299200000
var date = new Date(1481299200000) 
输出:Sat Dec 10 2016 00:00:00 GMT+0800 (中国标准时间)

Date.UTC()

Date.UTC(年,月,日,时,分,秒,毫秒),UTC()方法也返回毫秒数,但是参数用来接收年、月、日、时、分、秒、毫秒。月的取值是0~11,这一点一定要注意;如果日不填,默认是1;其他默认是0。注意UTC()方法参数是不带有时区的,也就是说是GMT时间,由于在中国,所以创建的时间会多出8个小时。如

var d = new Date(Date.UTC(2016,9,20)); 
输出:Thu Oct 20 2016 08:00:00 GMT+0800 (中国标准时间)

从中很明显可以看出,多出8个小时。

日不填的情况,默认是1

var d = new Date(2016,9) 
输出:"Wed Oct 12 2016 21:01:34 GMT+0800 (中国标准时间)"

为了简单起见,Date构造方法分别模仿了Date.parse()和Date.UTC(),

new Date("月/日/年") //模仿Date.parse() 
new Date(年,月,日,时,分,秒,毫秒) //模仿Date.UTC()

但是Date(年,月,日,时,分,秒,毫秒) 与Date.UTC()不一样,Date(年,月,日,时,分,秒,毫秒) 带有时区,如

var d = new Date(2016,9,20); 
输出:Thu Oct 20 2016 00:00:00 GMT+0800 (中国标准时间)

常用的方法

Date常用的方法就是返回年-月-日 时:分:秒格式的日期,

var date=new Date(2016,10,20); 
date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds() 
 
输出:"2016-11-20 0:0:0"

mongo中的date

有了以上基础,就能懂mongo中的date了。一定要注意mongo中的date字段,数据类型是date,而不是字符串,所以mongo中查询时间字段时,应该使用new Date()

这里写图片描述

很明显,过滤掉了8月份的数据。
这里写图片描述


发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

javascript 函数详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。