如何禁用uib-timepicker将时间转换为浏览器时区

时间:2017-02-07 13:10:49

标签: javascript angularjs datetime angular

在我的数据库中,时间以UTC和前端存储,我使用uib-timepicker来编辑/更新时间。我不希望uib-timepicker将时间从服务器时区转换为本地时区。我希望uib-timepicker只显示UTC时间。

那么,如何停止uib-timepicker转换时区?

P.S:我在IE中没有任何问题。仅在Chrome中,它正在转换时区。

2 个答案:

答案 0 :(得分:1)

使用时区偏移量将其转换回UTC:

{{1}}

答案 1 :(得分:0)

添加以下指令可使用uib-datepicker中的uibDateParser解决uib-timepicker的问题。

/**
 * UTC for timepicker
 */
angular.module('app').directive('uibTimepicker', function(uibDateParser) {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ngModel) {

      ngModel.$formatters.push(function(value) { // view
        if(!value) { return value; }

        return uibDateParser.fromTimezone(value, 'UTC');
      });

      ngModel.$parsers.push(function(value) { // model
        if(!value) { return value; }

        return uibDateParser.toTimezone(value, 'UTC');
      });

    }
  };
});