如何将 RFC 3339 中的日期转换为 javascript 日期对象(自 1970 年以来的毫秒)
How to convert date in RFC 3339 to the javascript date object(milliseconds since 1970)
谷歌日历向我抛出rfc3339,但我所有的日期都是自1970年1月以来的毫秒。
RFC3999:
2012-07-04T18:10:00.000+09:00
JavaScript 当前时间: (new Date()).getTime():
1341346502585
我更喜欢毫秒,因为我只处理倒计时而不是日期。
该格式的日期时间,带有 3 个小数位和一个"T",在传递给 Date.parse
或 Date
构造函数时具有明确定义的行为:
console.log(Date.parse('2012-07-04T18:10:00.000+09:00'));
// 1341393000000 on all conforming engines
但是,您必须小心始终提供符合 JavaScript 规范的输入,否则您可能会在不知不觉中回退到实现定义的解析,由于实现定义,跨浏览器和环境都不可靠。对于其他格式,可以使用正则表达式进行手动解析等选项:
var googleDate = /^('d{4})-('d{2})-('d{2})T('d{2}):('d{2}):('d{2})'.('d{3})([+-]'d{2}):('d{2})$/;
function parseGoogleDate(d) {
var m = googleDate.exec(d);
var year = +m[1];
var month = +m[2];
var day = +m[3];
var hour = +m[4];
var minute = +m[5];
var second = +m[6];
var msec = +m[7];
var tzHour = +m[8];
var tzMin = +m[9];
var tzOffset = tzHour * 60 + tzMin;
return Date.UTC(year, month - 1, day, hour, minute - tzOffset, second, msec);
}
console.log(parseGoogleDate('2012-07-04T18:10:00.000+09:00'));
或功能齐全的库,如 Moment.js。
你可以尝试两个Javascript日期库:
-
日期.js
-
瞬间.js
这两者都将为您提供函数,允许您以几乎任何格式解析和生成日期。
如果你经常使用日期,你会想要使用这些库之一;这比每次都滚动自己的函数要麻烦得多。
希望有帮助。
相关文章:
- 比较从函数和生成的日期对象
- Json数据包含日期和时间格式
- Javascript日期格式类似于ISO,但本地
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在JavaScript中延长当前日期
- 两位数的月份日期验证
- 更改angularjs中的日期-时间格式
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- NodeJS日期格式不起作用
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 使用当前日期生成随机id
- primefaces日历可以禁用过去的日期和时间吗
- 提前阅读日期
- Highchart UTC日期始终设置为1970年1月1日
- 引导日期选择器将日期设置为1970年之前
- 如何将 RFC 3339 中的日期转换为 javascript 日期对象(自 1970 年以来的毫秒)
- 如何使用Javascript自1970年以来将日期转换为毫秒
- Nvd3格式化日期总是返回1970-01-01
- javascript将本地日期和时间数组转换为UTC(从1-1-1970开始以毫秒为单位)