Используя angularjs добавить двоеточие во временной зоне

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

Я хочу часовой пояс с двоеточием, как +05: 30 в angularjs.

2 ответа

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 его здесь. Этот подход позволяет расширить встроенный фильтр даты с помощью опции ZZ для часового пояса с двоеточием. Единственное, что не учитывается, - это экранированные письма, но это не проблема в моем проекте с этим расширением. Возможно, вам придется проверить это, особенно если вы переопределите исходный параметр Z

0

Вы можете сделать следующее

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

но лучший (и более чистый) способ - написать собственный собственный фильтр.

Обратите внимание - кстати, угловые выражения не поддерживают литералы регулярных выражений (в случае, если вы думаете об упрощении этого пути) - https://docs.angularjs.org/guide/expression

Ещё вопросы

Сообщество Overcoder
Наверх
Меню