为什么MongoDB ISODate和Date对getDay()的行为有所不同?

时间:2014-08-20 18:42:14

标签: mongodb

在Mongo 2.6.4 shell中试试这个:

> tues = ISODate("2014-07-01")
ISODate("2014-07-01T00:00:00Z")
> tues.getDay()
1
> tues = new Date(2014, 6, 1)
ISODate("2014-07-01T04:00:00Z")
> tues.getDay()
2

即。为2014年7月1日(星期二)创建ISODate,并运行getDay()以获取星期几并获得1,然后使用标准Javascript Date创建相同日期, ,正如预期的Javascript,getDay()返回2。

从Mongo文档中,似乎ISODate只是Date的包装器。我无法找到任何文档说明getDay()的行为不同。这是预期的行为吗?如果是这样,为什么?一个错误?

1 个答案:

答案 0 :(得分:2)

getDay根据当地时区为您提供当天时间。我怀疑你是在美国EDT时区。因此,在第一种情况下,您当地时间仍为2014-06-30 20:00:00美国东部时间(周一)。