【问题标题】:How to convert localized date string to date object using moment如何使用时刻将本地化日期字符串转换为日期对象
【发布时间】:2020-02-14 13:45:30
【问题描述】:

使用 moment 我们如何将本地化的日期字符串转换为 javascript 日期对象? 遵循以下步骤,但得到了当前输出(检查下方)。

我们怎样才能得到预期的输出?

你能帮帮我吗?

例如:将时刻语言环境设置为'fr'

moment.defineLocale('fr', [localeObject][1]);

现在我们得到日期字符串为 "27 févr. 2020 18:23:50"

我们如何将它转换为日期对象?

moment("27 févr. 2020 18:23:50")

预期输出:

2020 年 2 月 27 日星期四 18:23:50 GMT+0530(印度标准时间)

电流输出:

无效日期

【问题讨论】:

  • 感谢您的回复。如果我们有 12 小时格式,那么子午线也将被本地化。在这种情况下,上面的线程将起作用,还是我们需要遵循任何其他方式?似乎线程不适用于经络。你能指导我吗
  • 它会起作用的,经络只是格式的一部分。

标签: javascript momentjs


【解决方案1】:

您收到无效日期,因为"27 févr. 2020 18:23:50" 既不是 ISO 8601 也不是 RFC 2822 兼容的形式,因此您必须使用 moment(String, String)。此外,您必须使用法语语言环境,请参阅文档的i18n 部分。

docs 中所述,您可以将DD 用于月份中的几天,MMM 用于月份名称(区域设置),YYYY 用于 4 位数年份,HH 用于 0-23 小时(小写 hh 表示 1-12 小时),mm 表示分钟,ss 表示秒。

然后您可以使用toDate() 从时刻对象中获取 JavaScript 日期:

要获取 Moment.js 包装的本机 Date 对象的副本,请使用 moment#toDate

带有工作代码示例的片段:

console.log( moment("27 févr. 2020 18:23:50", "DD MMM YYYY HH:mm:ss").toDate());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/locale/fr.js"></script>

【讨论】:

    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多