momentjs - 如何解析UTC中的日期时间?

标签 momentjs

我有一个像"10/14/2014 5:30:00 AM"这样的字符串。我需要将其解析为UTC字符串。但是,当我执行moment.utc("10/14/2014 5:30:00 AM").format()时,我得到"2014-10-13T22:30:00+00:00",而我期望得到"2014-10-14T12:30:00+00:00"

如何使momentJS相信我的字符串为UTC字符串并解析它,而不会根据本地时区(在我的情况下为+7)移动时间?

最佳答案

这确实是一个bug,还有I filed it here。只要您有时间回退到浏览器的解析器,就会发生此问题。如果在运行此代码时在浏览器的调试控制台中进行监视,则会看到以下警告:

Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.



警告是正常的,告诉您不要使用回落到JavaScript Date对象的解析器的方式。您可以通过提供格式字符串来避免这种情况。

通常,以m/d/y格式传递没有格式字符串的值是一个坏主意,因为并非所有用户都将在其浏览器中具有该格式设置。像1/4/2014这样的值可以解释为1月4日或4月1日。

为了明确地告诉时刻以特定格式进行解析,pass the format string像这样:
moment.utc("10/14/2014 5:30:00 AM", "M/D/YYYY h:mm:ss a")

关于momentjs - 如何解析UTC中的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26350652/

相关文章:

node.js - Javascript momentjs 将 UTC 从字符串转换为日期对象

reactjs - react-moment 在哪里设置 moment.locale

javascript - 时刻没有给我两个日期之间的天数差异

javascript - 使用 Moment.js 和 FullCalendar 处理与日期无关的事件

javascript - 将解析的日期与 momentjs 进行比较

javascript - 如何用moment js做一个格式

javascript - Moment js - 显示距离日期的天数和小时数

javascript - 如何从当前时间 momentjs 中减去时间

javascript - 在矩数组中查找 moment.js 对象?

javascript - 为什么在月份下拉列表中选择选项 12 时仅不加载 12 月份?