谷歌日历向我抛出了rfc3339,但我所有的日期都是从1970年1月以来的毫秒。
rfc3999:
2012-07-04T18:10:00.000+09:00javascript当前时间:(new Date()).getTime():
1341346502585我更喜欢毫秒,因为我只处理倒计时,而不是日期。
发布于 2012-07-04 04:27:00
该格式的Datetimes在传递给Date.parse或Date构造函数时具有well-defined behaviour:
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这样功能齐全的库。
https://stackoverflow.com/questions/11318634
复制相似问题