2014-07-04 68 views
1

我有一个剑术网格和我显示在一列中的时间如图PIC enter image description here剑道网格显示不正确的时间

但每当我使用编辑剑道按钮时选择器更新时间不显示正确的时间虽然如果我选择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

好吧,我找到了答案,它工作。首先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); 
     }); 
    }, 

我相信这会为每一个

工作