2014-07-04 105 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); 
     }); 
    }, 

我相信這會爲每一個

工作