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 со своего сервера в браузеры клиентов.