首页 > 解决方案 > 带有“T”和“Z”字符的日期字符串

问题描述

我使用以下格式在 sql 数据库中保存日期:

Moment(new Date()).format('YYYY-MM-DD HH:mm:ss', 'true')

当我从数据库中检索相同的 dateString 时2020-09-15T20:05:28.000Z:反过来,如果我这样做,Moment('2020-09-15T20:05:28.000Z').format('ddd MMM DD GGGG, h:mm A')如果返回Wed Sep 16 2020, 1:35 AM实际上是不正确的。

任何人都可以对此有所了解吗?

标签: datemomentjs

解决方案


从 DB 检索到的时间是 UTC 格式,并且您在本地时间解析它

根据文档

默认情况下,moment 解析并以本地时间显示。

如果要解析或显示 UTC 时刻

因此,如果您想按预期显示,请使用.utc方法

let time = moment("2020-09-15T20:05:28.000Z")
  .utc()
  .format("ddd MMM DD GGGG, h:mm A")

console.log(time)
<script src="https://momentjs.com/downloads/moment.min.js"></script>


推荐阅读