gpt4 book ai didi

javascript - 格式化 ISO 日期

转载 作者:行者123 更新时间:2023-11-28 08:10:27 29 4
gpt4 key购买 nike

我进行了 API 调用并得到了响应。响应具有这样的日期时间值

20131107T102103,00+01

我猜这是 ISO 日期格式。我无法使用 javascript 将其格式化为人类可读的格式。

最佳答案

这确实是ISO 8601 ,但这并不是最常见的形式。

  • 这是紧凑的形式。在网络上,我们通常会看到扩展形式,这在RFC 3339中也有描述。 .

  • 它在秒字段中使用逗号而不是小数。虽然 ISO 8601 规范允许其中任何一个,most implementations use a decimal point .

  • 虽然 ISO 8601 允许使用缩短形式的偏移量 (+01),但通常以紧凑形式表示为 +0100,或以扩展形式为 +01:00

尽管如此,该值符合 ISO 8601 标准,因此它应该可以被大多数较新的浏览器解析。但事实并非如此。

Internet Explorer 11

IE Screenshot

谷歌浏览器35

Chrome Screenshot

火狐30

FireFox Screenshot

那么,接下来该怎么办呢?您可以编写一堆代码来提取字符串的所有各个部分并自己构建一个 Date 对象,但这工作量太大。只需使用 moment.js 。这是在 JavaScript 中解析和格式化日期和时间的领先库之一,它适用于所有浏览器。

// parse it to a moment object first
var s = "20131107T102103,00+01";
var m = moment(s + "00","YYYYMMDD[T]HHmmss[,]SSZZ");

// then you can output however you like
m.format("...whatever...")

// or perhaps you need a JS Date object
m.toDate()

请注意,我仍然需要在偏移量中添加两个额外的零。即使 moment.js 也无法识别只有两位数的偏移量。

关于javascript - 格式化 ISO 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281978/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com