javascript - MongoDB 存储正确的日期但在 View (EJS)上未正确显示

标签 javascript mongodb momentjs ejs

我有一个表单,用户可以使用以下命令输入日期 它存储在 Mongo DB 中,控制台日志显示日期是正确的(在 ISODate("2017-05-21T00:00:00Z") 中),但是,当将此日期作为 EJS 中的参数传递时,显示的日期是不同。

这是存储在 mongoDB 中的数据: "Begin": ISODate("2017-05-21T00:00:00Z")

这是 EJS 文件中显示的数据:'2017-05-20'

我使用以下方法格式化日期:

moment(data.Begin).format('YYYY-MM-DD')

不使用moment,EJS上显示的日期是:

"Sat May 20 2017 19:00:00 GMT-0500 (Central Daylight Time (Mexico))"

无论如何,这是错误的。

最佳答案

MongoDB 以 UTC 格式存储日期。标准日期格式,momentjs 的默认值是“本地时间”。

如果你想保留 UTC,那么你可以使用 .utc()

来请求它
moment(data.Begin).utc().format('YYYY-MM-DD')');

关于javascript - MongoDB 存储正确的日期但在 View (EJS)上未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102458/

相关文章:

javascript - service worker 不离线加载

javascript - Node js 需要使用变量 (var) 的 json

javascript - 如何通过按 javascript/svg 中的按钮将形状的半径设置为更大或更小

python - Pandas 与 pickle 0.14.1 和 0.15.2 的向后兼容性问题

javascript - 在 mongo 和 Node 的大集合上迭代游标不返回所有结果?

javascript - 如何使用时刻获取相同日期的数据?

javascript - 修改 Javascript 对象中的属性

php - MongoDB 按引用字段过滤 (ORM)

javascript - 如何将 MMM ('Apr' ) 中的月份转换为 momentjs 中的 M(4) ?

javascript - 如何将时间从 UTC 转换为 "Pacific/Easter"?