Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
34
rated 0 times [  41] [ 7]  / answers: 1 / hits: 30636  / 12 Years ago, tue, july 3, 2012, 12:00:00

Google calendar throws at me rfc3339, but all my dates are in those milliseconds since jan 1970.



rfc3999:



2012-07-04T18:10:00.000+09:00


javascript current time: (new Date()).getTime():



1341346502585


I prefer the the milliseconds because I only deal in countdowns and not in dates.


More From » datetime

 Answers
18

Datetimes in that format, with 3 decimal places and a “T”, have well-defined behaviour when passed to Date.parse or the Date constructor:





console.log(Date.parse('2012-07-04T18:10:00.000+09:00'));
// 1341393000000 on all conforming engines





You have to be careful to always provide inputs that conform to the JavaScript specification, though, or you might unknowingly be falling back on implementation-defined parsing, which, being implementation-defined, isn’t reliable across browsers and environments. For those other formats, there are options like manual parsing with regular expressions:





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'));





or full-featured libraries like Moment.js.


[#84490] Monday, July 2, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
reed

Total Points: 725
Total Questions: 85
Total Answers: 89

Location: Singapore
Member since Sat, Jul 25, 2020
4 Years ago
;