Как преобразовать дату в RFC 3339 в объект даты в javascript (миллисекунды с 1970 года)

Календарь Google бросает в меня rfc3339, но все мои даты в тех миллисекундах с января 1970 года.

rfc3999:

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

javascript текущее время: (новая дата ()). getTime ():

1341346502585

Я предпочитаю миллисекунды, потому что я имею дело только с обратным отсчетом, а не с датами.

 Basil Bourque06 февр. 2018 г., 21:13
КстатиRFC 3339 это профильISO 8601 стандарт. УвидетьWhat's the difference between ISO 8601 and RFC 3339 Date Formats?.

Ответы на вопрос(2)

Решение Вопроса

Date.parse должно сработать:

However, Date.parse общеизвестно ненадежен во всех браузерах, поэтому вам нужно тщательно его протестировать. Если это не работает, то здесь есть функция:

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 = new Date().getTimezoneOffset() + tzHour * 60 + tzMin;

    return new Date(year, month - 1, day, hour, minute - tzOffset, second, msec);
}
 DoTheEvo03 июл. 2012 г., 22:51
Спасибо, работает как шарм. Я использовал огромный код с регулярным выражением, и он перестал работать для меня, затем я трачу много времени, гугля и читая здесь, но ничего, до сих пор. Я использую его в расширении браузера, поэтому он не должен быть кроссплатформенным. Спасибо
 19 апр. 2016 г., 14:11
Слегка измененная версияhere который справляется с Z или отсутствующим часовым поясом, отсутствующим: в часовом поясе и отсутствующими миллисекундами.

Date.js

Moment.js

Оба из них дадут вам функции, которые позволят вам анализировать и генерировать даты практически в любом формате.

Если вы много работаете с датами, вы захотите использовать одну из этих библиотек; это намного меньше хлопот, чем каждый раз, когда вы выполняете свои собственные функции.

Надеюсь, это поможет.

 04 окт. 2013 г., 14:49
Пример кода будет потрясающим.
 21 апр. 2015 г., 03:32
С помощьюmoment.js, moment('2012-07-04T18:10:00.000+09:00').unix() должен сделать свое дело.

Ваш ответ на вопрос