在 mongodb 中日期的值为:
"date" : ISODate("2012-10-11T07:00:00Z")
在带有 Mongoose 的 Node 中,我检索日期并具有以下值:
entry.date = 2012-10-11T07:00:00.000Z
所以在我的代码中我执行以下操作:
var date = new Date(entry.date);
var format = date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear();
我得到输出:
9/11/2012
这有什么问题吗?
我原以为输出会是:10/11/2012
我知道日期中的月份从 0-11 开始。但因为我从日期格式中获取它 为什么我必须减去 1 个月。
谢谢
最佳答案
JavaScript Date.getMonth()
是从零开始的,不是从一开始的。
“日期”变量是 Date
,而不是您怀疑的“日期格式”(JavaScript 没有这样的概念)。
var dateStr = '2012-10-11T07:00:00.000Z';
var date = new Date(dateStr); // Thu Oct 11 2012 01:00:00 GMT-0600 (MDT)
date.getMonth(); // => 9 (October)
试试这个:
var format = (date.getMonth()+1) + //...
关于node.js mongodb 检索 ISODate 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838369/