我的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)"
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()
它将在格林威治标准时间向您显示"星期四,26 九月 2019 18:30:00 GMT",这是准确的。
这似乎是时区问题。
如果我跑
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
差一天