{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: 2010-10-29 09:10:23 +0530
Я хочу часовой пояс с двоеточием, как +05: 30 в angularjs.
Я ссылаюсь этот 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
Вы можете сделать следующее
{{ d = (1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z').split(''); d.splice(-2, 0, ':'); d.join('') }}
но лучший (и более чистый) способ - написать собственный собственный фильтр.
Обратите внимание - кстати, угловые выражения не поддерживают литералы регулярных выражений (в случае, если вы думаете об упрощении этого пути) - https://docs.angularjs.org/guide/expression