一. 服务端返回的日期和时间之间有T
Asp.net MVC中 action返回前台的日期类型数据 是带有 T的,如: 2015-07-07T10:15:01。
这样的数据在Chrome浏览器,会自动加8小时,如下:
而在IE下,是没有问题的,
解决办法:可以在json序列化时处理: 需要使用Newtonsoft.Json序列化输出,
JsonSerializerSettings setting = new JsonSerializerSettings(); setting.DateFormatHandling = DateFormatHandling.IsoDateFormat; setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() => { return setting; });
二. javascript处理日期和时间带T的情况
我的方案就是把T替换掉
dateTransfer: function (dateString) { if (!dateString) { return ""; } return new Date(dateString.replace(/T|Z/g, ‘ ‘)); },
三. IE和Chrome浏览器对日期处理的区别
最主要的区别就是IE浏览器不能识别这们的日期类型,如:2015-07-07 10:15:01, 如果只是日期的,是可以的,
而chrome是都可以
解决方案,就是把日期中的‘-‘替换成‘/‘
dateTransfer: function (dateString) { if (!dateString) { return ""; } return new Date(dateString.replace(/-/g, ‘/‘).replace(/T|Z/g, ‘ ‘)); },
四. 吐槽下IE
IE8下,这个也报错了,而高版本的IE是没有问题的
加了T的时间,和不加T的时间也是不一样的
时间: 2024-10-17 04:56:58