我使用新的Date()mongoose和nodejs 10时错误的时间和日期

时间:2018-05-05 19:54:10

标签: node.js mongodb mongoose-schema

所以我有一个mongoose模式,其中一些属性类型设置为Date。但是当我将一些值保存到数据库时会出现问题,日期似乎要么落后一天(和错误的时区),要么完全错误。以下是架构的一部分

dob: {
    type: Date,
    required: [
        true,
        "Date of birth is required"
    ]
}

所以,当我保存一个日期:1993年6月12日,我得到这个:1993-06-11T22:00:00.000Z

日期落后了一天,我真的不知道造成这种情况的原因。 使用NodeJS 10,Mongoose 5.0.17

1 个答案:

答案 0 :(得分:1)

这很好。当您将日期存储为'12 -June-1993'时,您没有提供时区或非ISO格式,因此它将其作为区域设置日期时间戳,这意味着它将作为您的(您的服务器)时区日期。但它存储为ISO日期时间戳(GMT / UTC),因此其标准化。

现在,如果您将日期打印为区域设置字符串,则在读取日期时间时,您会将时间视为'12 -June-1993'。

  

让date = new Date('1993-06-11T22:00:00.000Z');

     

date.toLocaleString()// 6/12/1993,3:00 AM AM