Ответ 1
попробуйте следующее:
var tagText = $(this).html();
tagText = tagText.replace(/-/g, '/');
var givenDate = new Date(tagText);
alert(givenDate);
Я хочу проанализировать дату на моей странице в 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/
попробуйте следующее:
var tagText = $(this).html();
tagText = tagText.replace(/-/g, '/');
var givenDate = new Date(tagText);
alert(givenDate);
Как объясняется в документации, строка, которую вы передаете конструктору объекта Date, должна быть:
Значение строки, представляющее дату. Строка должна быть в формате распознается методом parse (IETF-совместимые временные метки RFC 1123).
В принципе, он должен представлять дату RFC822 или ISO 8601.
Что мне нужно изменить, чтобы он работал со всеми основными браузерами?
Запишите его в миллисекундах.
Если вам действительно нужна полная поддержка кросс-браузера для любого формата даты, вы должны взглянуть на moment.js. Это позволяет вам четко указывать формат ввода. Например:
var m = moment('01-07-2012 01:04 PM', 'DD-MM-YYYY hh:mm a');