如何将 ISO 8601 格式的日期值转换为 JavaScript 中的日期对象?
我一直在尝试将日期值转换为更易读的格式。 为此,我尝试使用 JavaScript Date.parse()
方法来解析日期。 然而,这不适用于我的输入(例如:“2007-09-21T14:15:34.058-07:00”
)。 最终目标是输出一个日期字符串,如 “January 30th, 2008 @ 2:15PM”
。
有任何想法吗?
I've been trying to convert a date value into a more readable format. To do that, I'm trying to parse the date using the JavaScript Date.parse()
method. That however does not work on the input (eg: "2007-09-21T14:15:34.058-07:00"
) that I have. The end goal is to output a date string like "January 30th, 2008 @ 2:15PM"
.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能应该使用datejs f3lix 推荐,但是我很无聊,拼凑了一个小对象,它完全符合您的要求:
2012 年 9 月 25 日:清理代码,允许非扩展格式,例如 20120925T164740+0200< /em>
2011 年 12 月 1 日:修复了月份字符串中的错误。 August wasmissing
示例:
说明:
convert 将字符串作为输入,如果成功则返回日期对象,否则抛出异常。 该字符串必须采用以下格式之一:
其中:
format 接受上述格式的字符串或日期对象,并返回格式为:
字符串
- M 是月份的英文全称
- D 是带有数字顺序后缀的月份日期(1-2 位数字)
- Y 是年份(1 位或多位数字)
- h 是 12 小时格式的小时(1-2 位数字)
- m 是分钟(2 位数字)
month 是一个包含月份名称的数组
ordinal 是一个函数,它以数字作为输入并返回带有英文序数的数字后缀。
clock12 是一个函数,它将 24 小时格式的小时、分钟和秒转换为美国 12 小时格式的字符串。 秒是可选的。
You should probably use the datejs that f3lix recommended, however I was bored and threw together a little object that does exactly what you asked for:
September 25, 2012: Cleaned code, allow non-extended format, eg 20120925T164740+0200
December 1, 2011: fixed a bug in the month string. August was missing
Example:
Explanation:
convert takes a string as an input and returns a date object if successful or throws an exception if not. The string must be in one of the following formats:
Where:
format takes a string in the above format or a date-object and returns a string formated as:
Where
- M is the full English name of the month
- D is the date of month with a numerical order suffix (1-2 digits)
- Y is the year (1 or more digits)
- h is the hour in 12 hour format (1-2 digits)
- m is the minute (2 digits)
month is an array with the name of the months
ordinal is a function that takes a number as input and return the number with English ordinal suffix.
clock12 is a function that takes hour, minute and second in 24h format and converts it to a string in the US 12h format. The seconds is optional.
尝试 http://www.datejs.com/。 它是一个 JavaScript 日期库,具有扩展的 Date.parse 方法和 Date.parseExact 方法,可让您指定格式字符串。
请参阅 DateJS API 文档。
Try http://www.datejs.com/. It is a JavaScript Date Library with an extended Date.parse method and a Date.parseExact method, which lets you specify a format string.
See DateJS APIDocumentation.