Momentjs日期值转换为日期时间格式

时间:2019-04-24 16:13:47

标签: javascript momentjs moment-timezone

我已经以日期和时间格式使用了moment js,以一种可读和字符串(月)的方式。现在,我试图在这里获得相同的原始物:

我的原始值:2019-04-23T19:17:48.000Z

片刻之后: moment('2019-04-23T19:17:48.000Z').format('dddd Do YYYY, h:mm:ss')

输出: Wednesday 24th 2019, 12:47:48

现在我只需在这里使用output就可以恢复我的原始值。

任何潜在客户都感谢您的回答。

2 个答案:

答案 0 :(得分:2)

仅使用您提供的数据作为Wednesday 24th 2019, 12:47:48 am的输出,您就无法真正回到原始值。如果是有效日期,则不会有一个月。您需要逻辑来确定2019年每个月的24号是星期三。

经过一些测试-您需要做一些事情才能使此字符串恢复到Moment可以识别的日期

moment('2019-04-23T19:17:48.000Z').format('dddd MMMM D YYYY, h:mm:ss a')
moment('Tuesday April 23 2019, 7:17:48 pm').format()
  1. 您必须拥有月份,否则它将认为它是无效的日期。在这种情况下,可以是月份的字符串,也可以是数字4
  2. 时刻不会从rd中提取23rd,否则它是无效的日期。

您可以使用一些字符串转换将其恢复为可用的日期对象,或者添加一些额外的数据,例如月份以及当您使用该日期格式时,

"Tuesday April 23 2019, 7:17:48 pm".replace('April ', '')

答案 1 :(得分:-1)

这是UTC / GMT下日期甲的最佳解决方案:

let dateTime = new Date("2015-09-30T19:54:21.000Z");
dateTime = moment(dateTime).utc().format("YYYY-MM-DD HH:mm:ss");
moment(moment(dateTime).utc().format("YYYY-MM-DD HH:mm:ss")).format();

o / p =>“ 2015-09-30T14:24:21 + 05:30”

moment("2015-09-30T14:24:21+05:30").format("YYYY-MM-DD HH:mm:ss")

o / p =>“ 2015-09-30 14:24:21”

moment.tz('2015-09-30 14:24:21', 'YYYY-MM-DD HH:mm:ss', 'UTC').format()

最终o / p =>“ 2015-09-30T14:24:21Z”