Angular ui bootstrap TimePicker在不同的浏览器中显示不同的时间

时间:2015-04-24 07:51:19

标签: javascript angularjs timepicker angular-bootstrap

我在客户端使用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(右)。

所以我的问题是如何在不同浏览器的时间戳中实现相同的价值呢?感谢。

0 个答案:

没有答案