AngularJS DateFilter
Синтаксис
{{ date_expression | date : format : timezone}}
$filter('date')(date, format, timezone)
Ключи форматирования
Форматируемая строка будет собрана из этих элементов:
yyyy: Четырёхзначное представление годаyy: Двухзначное представление годаy: Год, без нулей в началеMMMM: Месяц года текстом (January-December)MMM: Месяц года сокращённым текстом (Jan-Dec)MM: Месяц года цифрой, с 0 в начале (01-12)M: Месяц года цифрой (1-12)LLLL: Stand-alone month in year (January-December)dd: День месяца цифрой с 0 в начале (01-31)d: День месяца цифрой (1-31)EEEE: День недели полным текстом (Sunday-Saturday)EEE: День недели сокращённым текстом (Sun-Sat)HH: Час, с 0 в начале (00-23)H: Час (0-23)hh: Час в 12ти часовой репрезентации с нулём в начале (01-12)h: Час в 12ти часовой репрезентации (1-12)mm: Минута с 0 в начале (00-59)m: Минута (0-59)ss: Секунда с нулём в начале (00-59)s: Секунда (0-59)sss: Миллисекунда 3мя знаками (000-999)a: Маркер до полудня/после полудня AM/PMZ: 4 знака (+знак) определяет свиг временной зоны (-1200-+1200)ww: Неделя года, с нулём в начале (00-53). Неделя 01 – это неделя с первым четвергом года.w: Неделя года (0-53). Неделя 1 – это неделя с первым четвергом года.G,GG,GGG: Аббревиатура эры (e.g. 'AD')GGGG: Длинная строка эры (e.g. 'Anno Domini')
Строка формата также может быть одним из следующих предопределенных локализуемых форматов:
medium: эквивалентноMMM d, y h:mm:ss aдля en_US локали (e.g. Sep 3, 2010 12:05:08 PM)short: эквивалентноM/d/yy h:mm aдля en_US локали (e.g. 9/3/10 12:05 PM)fullDate: эквивалентноEEEE, MMMM d, yдля en_US локали (e.g. Friday, September 3, 2010)longDate: эквивалентноMMMM d, yдля en_US локали (e.g. September 3, 2010)mediumDate: эквивалентноMMM d, yдля en_US локали (e.g. Sep 3, 2010)shortDate: эквивалентноM/d/yyдля en_US локали (e.g. 9/3/10)mediumTime: эквивалентноh:mm:ss aдля en_US локали (e.g. 12:05:08 PM)shortTime: эквивалентноh:mm aдля en_US локали (e.g. 12:05 PM)
Строка формата может содержать литеральные значения. Их необходимо экранировать, заключив в одинарные кавычки (например, «h 'in the morning'»). Чтобы вывести одинарную кавычку, экранируйте её, то есть две одинарные кавычки подряд (например, «h 'o''clock'»).
Любые другие символы в строке формата будут выведены как есть.
Пример использования:
- index.html
<div ng-controller="Controller"> Date format: <input ng-model="format"> <hr/> Current time is: <span my-current-time="format"></span> </div>
- script.js
angular.module('docsTimeDirective', []) .controller('Controller', ['$scope', function($scope) { $scope.format = 'M/d/yy h:mm:ss a'; }]) .directive('myCurrentTime', ['$interval', 'dateFilter', function($interval, dateFilter) { function link(scope, element, attrs) { var format, timeoutId; function updateTime() { element.text(dateFilter(new Date(), format)); } scope.$watch(attrs.myCurrentTime, function(value) { format = value; updateTime(); }); element.on('$destroy', function() { $interval.cancel(timeoutId); }); // start the UI update process; save the timeoutId for canceling timeoutId = $interval(function() { updateTime(); // update DOM }, 1000); } return { link: link }; }]);