首页 > 解决方案 > 如何使用带有 AM/PM 的 moment.js 格式化没有时区 (Z) 的日期时间

问题描述

我正在将 DateTime 转换为显示YYYY-MM-DD hh: mm a在我的 Web 应用程序中使用 moemntjs 将 DateTime 转换为显示格式,但我不希望 momentjs 转换或考虑时区。

这是我2018-12-21T15:58:39.35-05:00作为 API 的一部分返回的日期,需要在没有 (-05:00) 的情况下显示日期YYYY-MM-DD hh: mm a格式显示不带 (-05:00) 的日期。

我目前正在做如下解决方法

var date1 = '2018-12-21T15:58:39.35-05:00'
var fmtDate = moment.utc(date1).zone("-05:00").format('YYYY-MM-DD hh:mm a');

$('#output').append(fmtDate);

小提琴链接

输入:'2018-12-21T15:58:39.35-05:00' 预期输出:'03:58 pm'
但我不想硬编码 zone ( -05:00) 并且 moment.js 应该在格式化中排除它。

标签: javascriptmomentjsutc

解决方案


utcOffset是你需要的:

var date1 = '2018-12-21T15:58:39.35-05:00'
var m = moment(date1).utcOffset(date1);
var fmtDate = m.format('YYYY-MM-DD hh:mm a');

$('#output').append(fmtDate); // result is as you expected: 2018-12-21 03:58 pm

这是示例:https ://jsfiddle.net/73pa1qkz/9/


推荐阅读