YUI с датами и отображением даты с Firefox

Я использую таблицу данных, загруженную через JSON с такой датой: 2010-06-03 В Opera и Chrome правильная дата отображается как 06/03/2010. С Firefox Windows (даже в безопасном режиме, без каких-либо плагинов) я получаю NaN/NaN/NaN. Если я использую консоль отладки, я вижу правильную дату, но в Windows Firefox я вижу "Неверную дату". Бонус, с Firefox Mac с кучей плагинов, у нас есть действительная дата!

Вот настройка столбца даты

oColumn['editor'] = 
   new YAHOO.widget.DateCellEditor({asyncSubmitter:UpdateRowData});
oColumn['formatter'] = YAHOO.widget.DataTable.formatDate;
oField['parser'] = 'date';

Спасибо,
Седрик

3 ответа

Решение

Оказывается, что "2010-06-03" не возвращает действительный объект Date (по крайней мере, в FF/Win). Для кросс-браузерной совместимости убедитесь, что ваше значение находится в формате, приемлемом для конструктора Date: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date

Справка Дженни хороша, но если вы не хотите копать, вы должны передать:

"YYYY, MM, DD"

в парсер YUI, чтобы заставить его работать в FF/Win, а также в Chrome.

В зависимости от вашей ситуации, другим способом решения этой проблемы является включение фактического конструктора даты в ваши данные "JSON". Как только вы это сделаете, это больше не стандартный JSON, и вам нужно будет проверить его в браузере.

Например

{'duration': 75, 'end_time': new Date(Date.UTC(2008,11,23,17,45,00,0)),
 'start_time': new Date(Date.UTC(2008,11,23,16,30,00,0))}

Преимущество больше не требует анализа данных в браузере, поскольку данные уже являются объектом даты.

Недостатком является то, что вы больше не отправляете действительный JSON со своего сервера в браузеры клиентов.

Другие вопросы по тегам