免费的 jqGrid 4.9.0 - MAC 上 Safari 上的日期格式
Free jqGrid 4.9.0 - Dates format on Safari on MAC
在所有 4 种主要浏览器(Safari、Chrome、IE 和 Firefox)上测试日期格式选项,同时在 windows 上工作效果很好。
但是,在 MAC 机器上测试时,格式选项在 Safari 中失败(MAC 上的 Firefox 运行良好)。
我的格式选项是:
gridField.formatter = 'date';
gridField.formatoptions = {};
gridField.formatoptions['srcformat'] = 'U/1000';
gridField.formatoptions['newformat'] = 'm/d/Y H:i:s';
在 Safari 中(仅在 MAC 上)将产生:NaN/NaN/NaN NaN:Nan:NaN。
知道如何解决这个问题吗?
谢谢,
问题如下。免费的 jqGrid 主要使用与 jqGrid 4.7 相同的 $.jgrid.parseDate
函数代码。它支持两种不同情况中日期格式的用法"u"
和"U"
。第一种情况是使用 "u"
和 "U"
而没有 任何额外的格式规范(例如,srcformat:"u"
)。表示jqGrid使用new Date(inputValue*1000)
解析输入值。输入值如 1418297439
将显示为 12/11/2014 11:30:39
使用 newformat: "m/d/Y H:i:s"
。另一方面,输入数据中有 1418297439000
而不是 1418297439
,而 jqGrid 没有针对这种情况的确切格式化程序。
您在原始演示 http://jsfiddle.net/OlegKi/ngm5rhgp/7/ 中使用格式 srcformat: "U/1000"
。这种格式 ("U/1000"
) 根本不存在。格式 "U/1000"
的解释方式与 "U/"
、"U."
、"U/BlaBla"
、"U:H:i:s"
或任何其他以 u
开头的格式相同带分隔符。因为输入数据看起来像 1418297439000
和 没有额外的分隔符 (,
, /
, </code>, <code>,
和其他一些)那么只有第一个格式化程序 U
将被使用,但它现在将被解释为 u
格式化程序,这意味着毫秒。 u
格式通常用于像 12/11/2014 11:30:39,123
这样的格式,其中最后的 123
部分是时间的毫秒部分。
MAC 上的 Safari 似乎不允许将日期创建为 new Date(1970, 1, 1, 0, 0, 1418297439000)
,它使用带有 1418297439000
作为输入数据和 srcformat: "U/1000"
的 jqGrid。
我建议你做的是修改输入数据和srcformat: "u"
格式的使用。需要枚举所有输入数据项,并将 start_time
和 end_time
属性分配给 100
。我在演示中使用了 http://jsfiddle.net/OlegKi/ngm5rhgp/8/ 代码
var mydata = [{...},{...}... {...}], n = mydata.length, item, i;
for (i = 0; i < n; i++) {
item = mydata[i];
item.start_time = Math.floor(item.start_time / 1000);
item.end_time = Math.floor(item.end_time / 1000);
}
并将 srcformat: "U/1000"
替换为 srcformat: "u"
。如果您没有 datatype
的 "local"
值,那么您可以修改 beforeProcessing
回调中的数据。
UPDATED:为了简化自 Unix Epoch(1970 年 1 月 1 日 00:00:00 GMT)以来以毫秒为单位的时间处理,如 1418297439000
,我介绍了在免费的 jqGrid 新格式选项中:srcformat: "u1000"
。新演示 http://jsfiddle.net/OlegKi/ngm5rhgp/9/
使用 未修改的 输入数据,只使用 srcformat: "u1000"
而不是 srcformat: "U/1000"
。要使用它,必须使用来自 GitHub.
的最新免费 jqGrid
在所有 4 种主要浏览器(Safari、Chrome、IE 和 Firefox)上测试日期格式选项,同时在 windows 上工作效果很好。
但是,在 MAC 机器上测试时,格式选项在 Safari 中失败(MAC 上的 Firefox 运行良好)。
我的格式选项是:
gridField.formatter = 'date';
gridField.formatoptions = {};
gridField.formatoptions['srcformat'] = 'U/1000';
gridField.formatoptions['newformat'] = 'm/d/Y H:i:s';
在 Safari 中(仅在 MAC 上)将产生:NaN/NaN/NaN NaN:Nan:NaN。
知道如何解决这个问题吗?
谢谢,
问题如下。免费的 jqGrid 主要使用与 jqGrid 4.7 相同的 $.jgrid.parseDate
函数代码。它支持两种不同情况中日期格式的用法"u"
和"U"
。第一种情况是使用 "u"
和 "U"
而没有 任何额外的格式规范(例如,srcformat:"u"
)。表示jqGrid使用new Date(inputValue*1000)
解析输入值。输入值如 1418297439
将显示为 12/11/2014 11:30:39
使用 newformat: "m/d/Y H:i:s"
。另一方面,输入数据中有 1418297439000
而不是 1418297439
,而 jqGrid 没有针对这种情况的确切格式化程序。
您在原始演示 http://jsfiddle.net/OlegKi/ngm5rhgp/7/ 中使用格式 srcformat: "U/1000"
。这种格式 ("U/1000"
) 根本不存在。格式 "U/1000"
的解释方式与 "U/"
、"U."
、"U/BlaBla"
、"U:H:i:s"
或任何其他以 u
开头的格式相同带分隔符。因为输入数据看起来像 1418297439000
和 没有额外的分隔符 (,
, /
, </code>, <code>,
和其他一些)那么只有第一个格式化程序 U
将被使用,但它现在将被解释为 u
格式化程序,这意味着毫秒。 u
格式通常用于像 12/11/2014 11:30:39,123
这样的格式,其中最后的 123
部分是时间的毫秒部分。
MAC 上的 Safari 似乎不允许将日期创建为 new Date(1970, 1, 1, 0, 0, 1418297439000)
,它使用带有 1418297439000
作为输入数据和 srcformat: "U/1000"
的 jqGrid。
我建议你做的是修改输入数据和srcformat: "u"
格式的使用。需要枚举所有输入数据项,并将 start_time
和 end_time
属性分配给 100
。我在演示中使用了 http://jsfiddle.net/OlegKi/ngm5rhgp/8/ 代码
var mydata = [{...},{...}... {...}], n = mydata.length, item, i;
for (i = 0; i < n; i++) {
item = mydata[i];
item.start_time = Math.floor(item.start_time / 1000);
item.end_time = Math.floor(item.end_time / 1000);
}
并将 srcformat: "U/1000"
替换为 srcformat: "u"
。如果您没有 datatype
的 "local"
值,那么您可以修改 beforeProcessing
回调中的数据。
UPDATED:为了简化自 Unix Epoch(1970 年 1 月 1 日 00:00:00 GMT)以来以毫秒为单位的时间处理,如 1418297439000
,我介绍了在免费的 jqGrid 新格式选项中:srcformat: "u1000"
。新演示 http://jsfiddle.net/OlegKi/ngm5rhgp/9/
使用 未修改的 输入数据,只使用 srcformat: "u1000"
而不是 srcformat: "U/1000"
。要使用它,必须使用来自 GitHub.