AngularJS. Преобразование значения тега (время Unix для чтения человеком)
Я получаю данные из базы данных и отображаю их:
- {{item.date}}
Где {{item.date}}
– дата Unix, такая как 1374843600. Как установить формат даты с помощью директив AngularJS? Является ли это возможным?
Когда я пытался это сделать, я получал значение tag mydate – {{item.date}}
- Как разрешить ввод только числа (цифры и десятичная точка) на входе?
- Как установить динамический controller для директив?
- Угловая директива динамического шаблона Angular.js
- Понимание опции transclude определения директивы?
- Угловая JS: Какова потребность в функции ссылки директивы, когда у нас уже есть controller директивы с объемом?
- AngularJS - Динамическое создание элементов, определяющих директивы
- Экран загрузки Angularjs по запросу ajax
- Можете ли вы изменить templateUrl на лету?
- вызов метода родительского controllerа из директивы в AngularJS
- Пользовательская форма проверки валидации для сравнения двух полей
- Чтобы проверить настраиваемую директиву angularjs validation
- Как выбрать элемент по имени classа с помощью jqLite?
- Многоуровневые таблицы (внутри другого при нажатии)
Используйте date filter
формата следующим образом:
{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}
Справка
Я столкнулся с проблемой с unix-временем, отформатированным как количество секунд от начала эпохи или как миллисекунды, которые используются в JavaScript. Так, строго говоря, AngularJS не конвертирует временную метку Unix в Date, а число с миллисекундами, которое в 1000 раз больше, поэтому сначала вам нужно будет умножить свой номер ввода на 1000, например:
{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}
В противном случае ваша дата будет неправильной.
Если у вас есть timestamp Unix, вам, вероятно, придется умножить вашу метку времени на 1000, поскольку timestamp Unix находится в секундах, а для фильтра даты в формате AngularJs требуется миллисекунды.
vm.milliseconds = Date('1441981121' * 1000);
затем используйте функцию $ filter ()
var date = $filter('date')(vm.milliseconds, 'd MMMM yyyy');
или вы можете использовать в ng-bind
Вы должны использовать фильтр даты, который уже предоставлен угловым: здесь
yourapp.filter('timestampToDate', function () { return function (timestamp) { var date = new Date(timestamp * 1000); var dateObject = date.getFullYear() +'/'+ ('0' + (date.getMonth() + 1)).slice(-2) +'/'+ ('0' + date.getDate()).slice(-2); return dateObject; }; });
Применение:
{{timestamp | timestampToDate}}
Существует директива для того, что называется rsTime.
Проверьте демо в Plunker .
Ниже представлены разные формы времени:
M/d/y - 11/7/2016 HH:mm:ss - 16:02:31 (24hrs formate) hh:mm:ss TT - 04:03:10 PM ddd MMM dh:mm TT - Mon Nov 7 at 4:04 PM
Для документации посетите Github