谷歌日历向我抛出 rfc3339,但我所有的日期都是自 1970 年 1 月以来的毫秒数。
RFC3999:
2012-07-04T18:10:00.000+09:00
javascript 当前时间: (new Date()).getTime():
1341346502585
我更喜欢毫秒,因为我只处理倒计时而不是日期。
谷歌日历向我抛出 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这样的全功能库。