【发布时间】:2017-07-15 14:22:12
【问题描述】:
我有一个表单,用户以以下格式输入日期:YYYY-MM-DD
我将日期存储在 Mongo DB 中。默认情况下,Mongo DB 将其存储为 UTC 日期。
示例: 用户意见 2018-02-06 Mongo 商店:“2018 年 2 月 6 日星期二 00:00:00 GMT+0000 (UTC)”
假设我想将此日期显示给用户。
以下代码给了我错误的日期:
var eventDateString = $('#hiddenDate').val() // Just gets the date as stored in mongo
var dateObj = new Date(eventDateString)
var dateMom = moment(dateObj).format('dddd, MMMM DD YYYY');
console.log(dateMom)
打印出来的是: “2018 年 2 月 5 日,星期一” 这是不正确的,日期应该是 2 月 6 日。
为什么会这样?
我试图通过这样做来解决问题:
var eventDateString = $('#hiddenDate').val();
$('#show-eventDate').text(moment.utc(eventDateString).format('dddd, MMMM DD YYYY'));
我得到了正确的结果:“2018 年 2 月 6 日,星期二”
但是,我收到以下警告:
(弃用警告:提供的值不是公认的 ISO 格式。moment 构造回退到 js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非 ISO 日期格式,并将被删除在即将发布的主要版本中。有关更多信息,请参阅http://momentjs.com/guides/#/warnings/js-date/....)
我该如何解决这个问题?
【问题讨论】:
标签: javascript mongodb date momentjs utc