2013-04-27 2 views
1

ОК, я просто прочитал, как все статьи о Google о форматах дат javascript, но не могу найти тот, который совместим со всеми браузерами. Может ли кто-нибудь дать мне твердый твердый формат, который просто работает?Какой формат даты Javascript совместим со всеми браузерами?

Это то, что я использовал до сих пор. Однако он не работает в Firefox 20.0.

var days = Math.floor((new Date() - new Date('2013-04-24T12:00:00Z'))/1000/60/60/24); 

document.getElementById('days').innerText = days; 

И тогда я пытаюсь отобразить его в моем HTML-документа, как это:

<span id="days"></span> 
+0

Этот сайт может помочь -http: //momentjs.com/docs/#/parsing/string/. * Предупреждение Поддержка браузера для этого несовместима. Поскольку нет спецификаций, по которым должны поддерживаться форматы, то, что работает в некоторых браузерах, не будет работать в других браузерах *. –

+0

Формат ISO8601 будет совместим как «Fri, 26 Apr 2013 13:00:14 GMT» ' –

ответ

0

Это не имеет никакого отношения к вашему коду даты, он отлично работает хорошо. Просто Firefox не поддерживает свойство innerText. Измените последнюю строку следующим образом:

var genericText = document.body.textContent ? 'textContent' : 'innerText'; 
document.getElementById('days')[genericText] = days;

Все новые браузеры поддерживают стандарт форматирования 8601 даты ISO при использовании в конкретных применяемых методов Date (reference). Однако IE8 и ниже не поддерживают формат ISO 8601, а также несколько других устаревших браузеров.

0

Насколько я знаю

date = new Date(year, month, day, hours, minutes, seconds, milliseconds); 
utctime = date.getTime() - (new Date()).getTimezoneOffset()*60000; 
utcdate = new Date(utctime); 

поддерживается практически всеми браузерами (включая < = IE8)

+0

Как насчет часового пояса? Как включить это? – Tom

+0

См. Обновленный ответ и дайте мне знать, если он решает вашу проблему –

Смежные вопросы