我正在使用通过JSON加载的数据表,日期如下:2010-06-03 使用Opera和Chrome,我的正确日期显示为06/03/2010。使用Firefox Windows(即使在安全模式下,没有任何插件),我得到一个NaN / NaN / NaN。如果我使用调试控制台,我会看到一个有效的日期,但在Firefox Windows中我可以看到“无效的日期”。 奖金,Firefox Mac上有大量的插件,我们有有效的日期!
以下是日期列的设置
oColumn['editor'] =
new YAHOO.widget.DateCellEditor({asyncSubmitter:UpdateRowData});
oColumn['formatter'] = YAHOO.widget.DataTable.formatDate;
oField['parser'] = 'date';
谢谢,
塞德里克
答案 0 :(得分:2)
事实证明“2010-06-03”不会返回有效的Date对象(至少在FF / Win中)。对于跨浏览器兼容性,请确保您的值采用Date构造函数可接受的格式: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date
答案 1 :(得分:1)
珍妮的参考是好的,但如果你不想挖掘,你应该通过:
“YYYY,MM,DD”
进入YUI解析器,使其在FF / Win以及Chrome中工作。
答案 2 :(得分:0)
根据您的具体情况,解决此问题的另一种方法是在“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。