javascript – Kendo MVC Datepicker时区翻译

我们正在观察以下与MVC应用程序和Kendo DatePicker之间的时差有关的问题. Web服务器以UTC 0运行.Web客户端在不同的时区(UTC 1,UTC 3,UTC-5等)运行

该网页包含一个Kendo日期选择器(没有时间部分),用户可以选择一天或一个月.幕后花絮使用包含时间和时区信息的完整日期对象在AJAX请求中发送日期.

我们只对日期部分感兴趣而不管客户端所在的时区.当用户选择日期/月份时,我们希望收到C#
本地服务器时间中的DateTime对象.

例如:

用户是UTC 1并选择’01 / 07/2013′
实际的C#DateTime对象被实例化为’30 / 06/2013 23:00′
我们希望得到’01 / 07/2013 00:00:00′

我们目前在Global.asax中使用以下设置:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandliig = Newtonsoft.Json.DateTimeZoneHandling.Local;

您能否提一些建议?

解决方法

问题是转换在JavaScript Date和C#DateTime之间变得很困难.我所做的是在将日期发布到服务器之前将日期转换为字符串.您可以挂钩到Kendo DataSource的parameterMap函数来执行此操作.

使用parameterMap函数:

var ds = new kendo.data.DataSource({
  transport: {
    parameterMap: function(data,type) {
      if (type === 'create' || type === 'update') {
        // this changes the date to 'dd/MM/YYYY' format
        data.date = kendo.toString(data.date,'d');
      }
      return data;
    }
  }
});

我还设置了JsonFormatter.SerializerSettings.DateFormatString =“YYYY / dd / MM hh:mm:ss”,因为JavaScript可以将其转换为Date对象,而不会出现错误或其他问题.我还建议将DateTimeZoneHandling更改为UTC.你不需要时区偏移,对吗?

在控制器的服务器端,您可以使用DateTime.Parse()或让编译器隐式执行转换.

相关文章

kindeditor4.x代码高亮功能默认使用的是prettify插件,prett...
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小