日期增加一天



我的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

差一天

最新更新