【问题标题】:Kendo grid is not displaying correct time剑道网格未显示正确的时间
【发布时间】:2014-07-04 05:42:54
【问题描述】:

我有一个剑道网格,我在一列中显示时间,如 pic 所示

但每当我使用编辑剑道按钮时间选择器更新时间时,它不会显示正确的时间,尽管如果我选择上午 5:12,它会正确保存在数据库中,但更新时它不会显示正确的时间。有人写过在模型定义中使用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或其他格式在剑道网格中显示mysql时间数据。

【问题讨论】:

    标签: mysql kendo-ui kendo-grid kendo-dataviz


    【解决方案1】:

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

    我相信这对每个人都有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多