Mongo错误的日期

时间:2011-12-26 06:22:49

标签: php mongodb mongoid

为什么mongoDB会为我创建错误的日期。

> start=new Date(2011,12,23)     
"Mon Jan 23 2012 00:00:00 GMT+0000 (UTC)"
> start=new Date(2011,12,24)
"Tue Jan 24 2012 00:00:00 GMT+0000 (UTC)"
> start=new Date(2011,13,24)
"Fri Feb 24 2012 00:00:00 GMT+0000 (UTC)"
> start=new Date(2011,11,24)
"Sat Dec 24 2011 00:00:00 GMT+0000 (UTC)"
> 

1 个答案:

答案 0 :(得分:4)

Mongo的日期对象是Javascript日期对象,其月份是从0开始的(Jan = 0,Dec = 11)。

2011/12/23 is actually month #1 (12-11) of year 2011+1 -> Jan 23/2012
2011/12/24 is actually month #1 (12-11) of year 2011+1 -> Jan 24/2012
2011/13/24 is actually month #2 (13-11) of year 2011+1 -> Feb 24/2012
etc...

除此之外,日历中没有第13个月,所以至少在第3个案例中,你开始提供无效的日期 - 只有JS规范是礼貌的并将其转换为“下一个”一年“对你来说它完全有用。