Date 剑道UI UTC日期问题
我有一个奇怪的问题,我们网格的编辑模板在编辑日期时引起问题 日期以UTC时区存储在服务器上。我使用以下模式设置时区:-Date 剑道UI UTC日期问题,date,datepicker,kendo-ui,utc,Date,Datepicker,Kendo Ui,Utc,我有一个奇怪的问题,我们网格的编辑模板在编辑日期时引起问题 日期以UTC时区存储在服务器上。我使用以下模式设置时区:- private DateTime\u minDate; 公共日期时间MinDate { 获取{return\u minDate;} 设置{u minDate=DateTime.SpecifyKind(value,DateTimeKind.Utc);} } 使用WebApi OData服务将日期加载到网格中 { “Id”:50088, “ProductId”:101437, “
private DateTime\u minDate;
公共日期时间MinDate
{
获取{return\u minDate;}
设置{u minDate=DateTime.SpecifyKind(value,DateTimeKind.Utc);}
}
使用WebApi OData服务将日期加载到网格中
{
“Id”:50088,
“ProductId”:101437,
“勇气”:“12224000”,
“ISIN”:“CH0122240002”,
“说明”:“业绩优异奖金证书,多股”,
“提供商”:“CSIB”,
“警报提示器”:“KO UN”,
“保护百分比”:1.0,
“ProtectionType”:“保护丢失”,
“基础货币”:“美元”,
“BarrierLevel”:190.0,
“障碍百分比”:70.0,
“BarrierType”:“低”,
“BarrierId”:0,
“EventStructureId”:170378,
“日期”:“2013-11-20T00:00:00Z”,
“注释”:空,
“确认”:假,
“拒绝”:错误
}
OData服务正确地序列化UTC日期和完整地到达UI的日期
在使用日期选择器控件编辑日期但仅使用键盘键入之后,数据将以错误的格式发送回服务器
{
“odata.metadata”:”http://local.host:51850/web/odata/$metadata#PendingBarrierAlerts/@Element“,
“Id”:50088,
“ProductId”:101437,
“勇气”:“12224000”,
“ISIN”:“CH0122240002”,
“说明”:“业绩优异奖金证书,多股”,
“提供商”:“CSIB”,
“警报提示器”:“KO UN”,
“保护百分比”:1.0,
“ProtectionType”:“保护丢失”,
“基础货币”:“美元”,
“BarrierLevel”:190.0,
“障碍百分比”:70.0,
“BarrierType”:“低”,
“BarrierId”:0,
“EventStructureId”:170378,
“日期”:“2013-11-20T23:00:00Z”,
“注释”:空,
“确认”:假,
“拒绝”:错误
}
请注意,日期的时间已更改
如何在网格中编辑UTC日期,并使用OData作为传输和远程数据源将其正确返回到服务器?日期始终在客户端创建为本地日期(而不是UTC日期)。为了拦截并避免结果中发生的情况,您需要在网格/数据源开始使用这些日期之前使用requestEnd事件来转换这些日期
您可以看到类似的方法。我用来避免@PeturSubev所说的是在我的
数据源.model
中实现一个正确初始化日期的parse
函数
dataSource:{
...
schema:{
parse:function (response) {
$.each(response, function (idx, elem) {
if (elem.Date && typeof elem.Date === "string") {
elem.Date = kendo.parseDate(elem.Date, "yyyy-MM-ddTHH:mm:ss.fffZ");
}
});
return response;
}
}
}
所以我让KendoUI和他们想要的任何日期一起工作