使用angularjs在时区中添加冒号

时间:2015-07-10 09:26:44

标签: javascript jquery angularjs html5 css3

{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: 2010-10-29 09:10:23 +0530

我想在angularjs中使用+05:30的冒号时区。

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作

{{ d = (1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z').split(''); d.splice(-2, 0, ':'); d.join('') }}

但更好(更清洁)的方法是编写自己的自定义过滤器。

注意 - 顺便说一句,角度表达式不支持正则表达式文字(如果您考虑以这种方式简化它) - https://docs.angularjs.org/guide/expression

答案 1 :(得分:0)

当我提出这个答案时,我引用了这个Q&A

myApp.config(['$provide', function($provide) {
  $provide.decorator('dateFilter', ['$delegate', function($delegate) {
    return function() {
      var args = arguments;
      // Replace my 'ZZ' option with a 'Z' I can find
      args[1] = args[1].replace('ZZ', '!!Z!!');
      // Get the original, Angular output
      original = $delegate.apply(this, args);
      // Find my marked time zones, clean up, and add the colon
      return original.replace(/!!([-|+]?)(\d\d)(\d\d)!!/, '$1$2:$3');
    };
  }])
}]);

你可以看到它的JSFiddle here。此方法选择使用ZZ选项扩展带有冒号的时区的内置日期过滤器。唯一不考虑的是转义字母,但这对我的项目扩展不是问题。您可能需要检查,特别是如果您覆盖原始的Z选项。