Дата выпуска в Firefox

Я хочу проанализировать дату на моей странице в Javascript Date.

Итак, у меня это есть на моей странице

<span>01-07-2012 01:04 PM</span>

И у меня есть Javascript-код, который анализирует это значение на сегодняшний день

var tagText = $(this).html();
var givenDate = new Date(tagText);
alert(givenDate);

И вот что я получаю в разных браузерах

IE:

Сб Янв 7 13:04:00 UTC + 0400 2012

Chrome:

Сб Янв 07 2012 13:04:00 GMT +0400 (Кавказское стандартное время)

Firefox:

Недействительная дата

Почему Firefox не распознает мою дату? Что я должен изменить, чтобы он работал со всеми основными браузерами?

Вот jsfiddle http://jsfiddle.net/mgER5/1/

Ответы

Ответ 1

попробуйте следующее:

var tagText = $(this).html();
tagText = tagText.replace(/-/g, '/');
var givenDate = new Date(tagText);
alert(givenDate);

Ответ 2

Как объясняется в документации, строка, которую вы передаете конструктору объекта Date, должна быть:

Значение строки, представляющее дату. Строка должна быть в формате распознается методом parse (IETF-совместимые временные метки RFC 1123).

В принципе, он должен представлять дату RFC822 или ISO 8601.

Ответ 3

Что мне нужно изменить, чтобы он работал со всеми основными браузерами?

Запишите его в миллисекундах.

Ответ 4

Если вам действительно нужна полная поддержка кросс-браузера для любого формата даты, вы должны взглянуть на moment.js. Это позволяет вам четко указывать формат ввода. Например:

var m = moment('01-07-2012 01:04 PM', 'DD-MM-YYYY  hh:mm a');