将ISO8601日期转换为纪元格式(unix时间戳)

时间:2014-01-07 18:43:14

标签: javascript date converter unix-timestamp iso8601

如何使用javascript将ISO 8601日期(例如20140107)转换为Unix时间戳(例如1389120125)?

1 个答案:

答案 0 :(得分:6)

如果您使用的是支持ECMAscript 5的浏览器,Date.parse()会接受ISO-8601日期字符串并返回一个以毫秒为单位的纪元值,所以只需将其除以1000就可以了。

然而

与您声明的内容相反,您的输入字符串不符合ISO-8601 subset defined in ECMAscript,因为它缺少各个字段之间的破折号。据我所知,破折号对于EMCAscript是强制性的(即使ISO 8601本身允许无破碎或基本格式)。所以也许你必须做一些字符串解析并使用Date的构造函数之一和它的getTime()方法来获得相同的

new Date(year, month [, day, hour, minute, second, millisecond]);

如果您希望与旧版浏览器保持兼容但仍使用Date.parse,则可以考虑包括this shim