YUI с датами и отображением даты с Firefox - PullRequest
0 голосов
/ 03 июня 2010

Я использую таблицу данных, загруженную через 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 ]

2 голосов
/ 04 июня 2010

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

1 голос
/ 16 июля 2011

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

"YYYY, MM, DD"

в парсер YUI, чтобы он работал в FF / Win и Chrome.

0 голосов
/ 09 июля 2010

В зависимости от вашей ситуации, другой способ решить эту проблему - включить конструктор фактической даты в ваши данные "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 со своего сервера в браузеры клиентов.

...