0

我正在使用通过 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';

谢谢,
塞德里克

4

3 回答 3

2

结果表明“2010-06-03”没有返回有效的日期对象(至少在 FF/Win 中)。为了跨浏览器兼容性,请确保您的值采用 Date 构造函数可接受的格式: https ://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date

于 2010-06-03T21:00:26.663 回答
1

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

"YYYY,MM,DD"

进入 YUI 解析器,让它在 FF/Win 和 Chrome 中工作。

于 2011-07-15T23:06:55.157 回答
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 从服务器发送到客户端浏览器。

于 2010-07-08T21:16:33.720 回答