2010-06-03 37 views
0

我使用的数据表通过JSON加载,日期如下:2010-06-03 使用Opera和Chrome我有正确的日期显示为06/03/2010。使用Firefox Windows(即使在安全模式下,没有任何插件),我可以获得NaN/NaN/NaN。如果我使用调试控制台,则会看到有效的日期,但在Firefox Windows中,我可以看到“无效的日期”。 奖金,与Firefox Mac awith一吨插件,我们有有效的日期!YUI数据表和使用Firefox显示日期

下面是日期列的

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

感谢,
塞德里克

回答

2

原来, “2010-06-03” 不返回有效的Date对象(至少在FF的设置/赢得)。对于跨浏览器的兼容性,可以肯定你的价值是可以接受的日期构造函数的格式: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date

+0

你是可靠的:Firefox 3.5不接受yyyy-mm-dd作为Date构造函数的日期......但Firefox 3.6接受它! 我通过为我的数据表的日期单元格创建一个特定的日期分析器来解决这个错误。 – 2010-06-18 14:47:33

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))} 

好处是不再需要解析浏览器上的数据,因为基准已经是一个Date对象。

缺点是您不再将有效的JSON从服务器发送到客户端浏览器。

1

珍妮的参考是好的,但如果你不想去挖掘,你应该通过:

“YYYY,MM,DD”

到YUI分析器得到它在FF工作/赢得以及Chrome。