我在客户端使用angularJS ui-bootstrap timepicker,在服务器端使用ASP MVC Web API:
<timepicker ng-model="formData.NotificationSendingTime"></timepicker>
客户端从服务器获取NotificationSendingTime,格式如下:2015-04-23T20:00:00。
但是不同的浏览器显示不同的时间:Internet Explorer显示20:00(右),Chrome显示23:00(错误)。据我了解,Chrome会根据我当地的时区更改时间。所以我写了angularJS过滤器来将日期转换为iso格式:
filter('toIso', [function() {
return function(dateTime) {
var localDate = new Date(dateTime);
var localTime = localDate.getTime();
var localOffset = localDate.getTimezoneOffset() * 60000;
var isoDate = new Date(localTime + localOffset);
return isoDate.toISOString();
};
}]);
并在我的控制器中使用它($ scope.formData的设置未在下面的代码中显示):
value.NotificationSendingTime = $filter('toIso')(value.NotificationSendingTime);
应用过滤器后,Internet Explorer显示17:00(错误),Chrome显示20:00(右)。
所以我的问题是如何在不同浏览器的时间戳中实现相同的价值呢?感谢。