【发布时间】:2018-05-14 12:22:01
【问题描述】:
我有一个 ISO 时间字符串:
"2018-05-14T14:04:53.16"
我需要将其转换为以下内容:
"May 05, 2018"
我知道的方法是先使用解析将其转换为时间戳,然后再转换为新日期:
let timestamp = new Date(Date.parse("2018-05-14T14:04:53.16"))
然后分别获取每个部分,将它们映射到映射数组,然后将它们连接起来:
let monthNames = ['January','Fabruary'...];
let month = timestamp.getMonth(); //gatDay/getYear
let monthName = monthNames[month - 1]
然后最后将所有部分连接成一个字符串:
let finalString = monthName+' '+day+', '+year;
有没有更短的方法来做到这一点? 我问是因为这两种日期格式都被 javascript Date 对象识别,但我找不到在两者之间转换的捷径。
【问题讨论】:
-
2018-05-14是 5 月 14 日,而不是 5 月 5 日。"2018-05-14T14:04:53.16"不是 unix 时间戳。在这种情况下建议使用 MomentJS。 -
new Date(Date.parse("2018-05-14T14:04:53.16"))与new Date("2018-05-14T14:04:53.16")相同。至少有一个正在使用的浏览器无法正确解析 2018-05-14T14:04:53.16。
标签: javascript ecmascript-6 ecmascript-5