我有一个kendo网格,我在一列中显示时间,如图所示
但每当我使用编辑kendo按钮时间选择器更新时间时,它都不显示正确的时间,但如果我选择5:12 AM它在数据库中正确保存但在更新时它没有显示正确的时间。有人写过在模型定义中使用parse
函数
parse: function (d) {
$.each(d, function (idx, elem) {
elem.event_time = kendo.parseDate(elem.event_time, "yyyy-mm-ddThh:mm:ss.fffz");
});
return d;
}
然后使用{0:hh:mm tt}格式化列。
columns : [
...
{
field : "date",
title : "Date",
format: "{0:hh:mm tt}"
} ,
...
但它仍然无法工作,它返回网格的第一个事件时间,甚至在页面加载时它不起作用。如何以utc或其他格式在kendo网格中显示mysql时间数据。
答案 0 :(得分:0)
好的,我找到了答案,它正在发挥作用。首先kendo
返回GMT
日期格式,并以当地时间格式显示日期,您需要修改此类的剑道parse
功能:
parse : function(response) {
$.each(response, function(idx, elem) {
if (elem.event_time && typeof elem.event_time == "string") {
var d=new Date(Date.parse(elem.event_time));
var utcdate = new Date(d.getTime() + (d.getTimezoneOffset()*60000));
elem.event_time = new Date(elem.event_time).toISOString();
}
});
return response;
},
并将parameterMap更改为
parameterMap : function(options, operation) {
if(operation == "update") {
var d=new Date(Date.parse(options.models[0].event_time));
var utcdate = new Date(d.getTime() + (d.getTimezoneOffset()*60000));
options.models[0].event_time = utcdate;
return { event : options.models[0] };
}
}
可能你还需要添加
save: function(response) {
dataSource.fetch(function() {
var row = dataSource.at(0);
var d=new Date(Date.parse(row.event_time));
//To convert to UTC datetime by subtracting the current Timezone offset
var utcdate = new Date(d.getTime() + (d.getTimezoneOffset()*60000));
row.set("event_time", row.event_time);
});
},
我相信这对每一个人都有用