【问题标题】:mongo db isodate to node date output mismatchmongo db isodate 到节点日期输出不匹配
【发布时间】:2013-06-18 19:05:15
【问题描述】:

newb 在 localhost os x 10.6.8 上的 node / mongo 上徘徊不使用中间件,因为我想先了解发生了什么。

将多个文档导入 mongo。尝试按日期查找但不匹配。 日期在 mongo 中是正确的,并且是从 mongo shell 中找到的,但在 node 中却早了一天。

蒙哥

db.dates.find({date: new Date('1957-07-05')})

输出

{ "story" : "poster" : "admin", "date" : ISODate("1957-07-05T00:00:00Z"), "_id" : ObjectId("519d59eb4b35dd72180002bf") }

节点

collection.find({date:new Date('1957-07-05')}).toArray(function(err, items) {
console.log(items);
});

控制台输出

[ { poster: 'admin',
date: Thu Jul 04 1957 20:00:00 GMT-0400 (EDT),
_id: 519d59eb4b35dd72180002bf } ]

解决方案(?)

似乎有人来到这里 .toISOString() 从上面 console.log(items[0].date); var wdf = new Date(items[0].date).toISOString(); 控制台.log(wdf);

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    当您构造没有明确时区的日期时,Node 使用您当前的时区(在本例中为 EDT (GMT-0400)),而 mongo 仅使用 UTC

    【讨论】:

    • 谢谢!为我指明了正确的方向。来到这里的任何人似乎 .toISOString() 都在工作。 console.log(items[0].date); var wdf = new Date(items[0].date).toISOString();控制台.log(wdf);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多