【发布时间】:2019-03-13 08:45:54
【问题描述】:
我将日期对象作为 JSON 字符串获取,如下所示。
2019-03-12T02:39:38.197+0000
正如我在 Jqgrid 中尝试了所有可能的格式选项一样,没有给出确切的时间。所以我使用了自己的格式化程序。
function dateFormatter (cellvalue, options, rowObject)
{
var new_format_value='';
var date = new Date(cellvalue);
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = Number(hours) >= 12 ? 'PM' : 'AM';
hours = Number(hours) % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = Number(minutes) < 10 ? '0'+ Number(minutes) : Number(minutes);
var strTime = hours + ':' + minutes + ' ' + ampm;
new_format_value=Number(date.getMonth())+1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + strTime
return new_format_value;
}
这种方式以某种方式完全按预期工作,但是当他们在IE10, IE11 中访问时,我在控制台中收到Invalid date 错误。
有人可以帮帮我吗?
【问题讨论】:
-
为什么你使用自定义格式化程序而不是使用预定义的
formatter: "date"?您能否在 jsfiddle 中提供 demo 来重现问题?您的代码的哪一行产生错误“无效日期”消息?我想是var date = new Date(cellvalue);。我猜您的某些输入数据不能用作Date的参数,您必须先包含一些额外的测试。我认为最好的选择是将formatter: "date"与formatoptions中对应的srcformat和newformat一起使用。
标签: javascript date jqgrid