【问题标题】:Javascript - reformat date string to ISO8601Javascript - 将日期字符串重新格式化为 ISO8601
【发布时间】:2016-07-07 16:33:51
【问题描述】:

我有一个这样的字符串:

21.03.2016 23:59

我需要将此字符串转换为 ISO-8601 日期时间字符串:

YYYY-MM-DDTHH:mm:ss+00:00

有没有简单的方法来转换这个日期? 我尝试使用 moment.js,但找不到解析现有日期的函数。

【问题讨论】:

  • 这真的与jQuery无关。原始字符串没有时区,将其转换为确实会产生原始字符串中不可用的准确度的字符串,因此可能会产生误导。

标签: javascript jquery date timestamp iso8601


【解决方案1】:

使用 moment.js 你可以这样做:

var dateString = '21.03.2016 23:59';
var momentDate = moment(dateString, 'DD.MM.YYYY HH:mm');
console.log(momentDate.toISOString());

这是一个fiddle 显示这个。

【讨论】:

    【解决方案2】:

    您也可以在不使用 moment.js 的情况下执行此操作。 看代码如下:

    (new Date("03.21.2016 23:59")).toISOString()
    

    只需将字符串 21.03.2016 23:59 (dd-mm-yyyy) 更改为 03.21.2016 23:59 (mm-dd-yyyy)。您可以通过拆分日期并更改拆分部分的顺序来轻松做到这一点。

    如果您不想这样做,那么只需按照 matthias 的回答使用 moment.js。

    【讨论】:

    • 不,不要那样做。 “03.21.2016 23:59”的解析完全依赖于实现,根本不需要由 Date 构造函数(或 Date.parse,它们是等效的)解析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2013-07-15
    • 2017-04-09
    • 2012-08-25
    • 1970-01-01
    • 2021-08-13
    相关资源
    最近更新 更多