Разбор даты API YouTube в Javascript - PullRequest
9 голосов
/ 12 января 2012

API YouTube возвращает объект JSON с массивом видео.Каждый видеообъект имеет опубликованную дату в формате «2012-01-11T20: 49: 59.415Z».Если я инициализирую объект Javascript Date, используя приведенный ниже код, объект возвращает «Недопустимая дата».

var dt = new Date( "2012-01-11T20:49:59.415Z" );

Я использую это на iOS / мобильном Safari, если это имеет значение.

Любые предложения или идеи о том, как создать действительный объект?

Ответы [ 5 ]

4 голосов
/ 12 января 2012

Попробуйте использовать Date.parse(string) в JavaScript и конструктор Date , который занимает количество миллисекунд с начала эпохи. Функция "parse" должна принимать действительную дату ISO8601 в любом браузере.

Например:

var d = new Date(Date.parse("2012-01-11T20:49:59.415Z"));
d.toString(); // => Wed Jan 11 2012 15:49:59 GMT-0500 (EST)
d.getTime(); // => 1326314999415
3 голосов
/ 12 января 2012

Я закончил тем, что нашел решение в http://zetafleet.com/blog/javascript-dateparse-for-iso-8601. Похоже, что дата в формате, называемом «ISO 8601».В более ранних браузерах (Safari 4, Chrome 4, IE 6-8) ISO 8601 не поддерживается, поэтому Date.parse не работает.Код, указанный в сообщении в блоге, расширяет текущий класс Date для поддержки ISO 8601.

3 голосов
/ 12 января 2012
var dt = "2012-01-11T20:49:59.415Z".replace("T"," ").replace(/\..+/g,"")
dt = new Date( dt );
0 голосов
/ 02 марта 2012

На этой странице есть код, который анализирует даты youtube (ISO 8601) в объекте даты:

http://webcloud.se/log/JavaScript-and-ISO-8601/

Архивация архива того же самого

Это работает для меня, хотя я не очень много тестировал.

0 голосов
/ 12 января 2012

Если вам нужна только часть даты (например, если вы не заботитесь о времени или часовом поясе), вы можете просто удалить эту часть строки даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...