使用 moment js 如何仅显示来自 UTC 时间戳的时间?

sty*_*ler 0 javascript momentjs

我有一个时间戳2016-09-14T10:44:55.027Z,我只想显示该10:44:55部分,但我不完全确定如何显示。我可以访问 moment 库,但不确定如何将其传递到 moment 中并对其进行格式化,我该如何添加 AM 或 PM?

moment("2016-09-14T10:44:55.027Z").format('hh:mm:ss')
Run Code Online (Sandbox Code Playgroud)

好像输出 11:44:55?

jsFiddle http://jsfiddle.net/eemfu0ym/

Mat*_*int 5

由于您的输入包含Z后缀,这意味着输入值采用 UTC。但是,您将它传递给默认的 moment 构造函数,即local time,因此会发生转换。

要将其保持在 UTC 中,最简单的方法是获取 UTC 模式下的时刻对象。

var m = moment.utc("2016-09-14T10:44:55.027Z")
Run Code Online (Sandbox Code Playgroud)

一旦你有了它,你可以随意格式化它:

m.format('HH:mm:ss')   // 24-hour clock time
m.format('hh:mm:ss A') // 12-hour time with meridiem (AM/PM)
Run Code Online (Sandbox Code Playgroud)

有关其他选项,请参阅moment 格式化文档。请注意,令牌区分大小写。