我的mongodb数据库中有以下格式的日期
{
"_id" : ObjectId("5b8cd5e5cf36cb517c91910e"),
"date" : ISODate("2018-09-04T23:58:00.000Z")
}
当我通过在前端使用力矩来显示它时,它会增加一天,因此2018-09-04
变成2018-09-05
我在前端
moment(date).format('dddd MMM DD, YYYY')
我希望从数据库中提取相同的日期2018-09-04
感谢您的帮助。
编辑->
当我在后端进行控制台操作时,我会看到此
date: 2018-09-04T23:58:00.000Z
在前端
date: "Thu Sep 06 2018 05:28:00 GMT+0530 (India Standard Time)"
答案 0 :(得分:2)
Mongodb以ISO格式存储日期,这取决于服务器和客户端所在的位置(在哪个时区中)。您可以使用以下内容。 您获取的日期格式为UTC格式,当将其转换为IST时,它将显示出差异。它表示以下内容:-
如果我将2019-09-26T18:30:00.000Z作为UTC日期。相当于2019年9月27日星期五00:00:00 GMT + 0530(印度标准时间)。请看5小时30分钟的时差。就时区而言,增加/减少任何事情并显示在IST上都是错误的。
如果您这样做
new Date(date).toUTCString()
它将在格林尼治标准时间向您显示“星期四,2019年9月26日18:30:00”。
答案 1 :(得分:1)
这似乎是一个时区问题。
如果我跑步
console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+00:00").format());
console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+05:30").format());
console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+00:00").format('dddd MMM DD, YYYY'));
console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+05:30").format('dddd MMM DD, YYYY'));
我明白了
2018-09-04T23:58:00Z
2018-09-05T05:28:00+05:30
Tuesday Sep 04, 2018
Wednesday Sep 05, 2018
哪一天下班