AngularJS. Преобразование значения тега (время Unix в читаемое человеком время)
Я получаю данные из базы данных и отображает его:
<ul>
<li ng-repeat="item in items>
<mydate>{{item.date}}</mydate>
</li>
</ul>
здесь {{item.date}}
- это дата Unix, например 1374843600. Как я могу установить формат даты с помощью директив AngularJS? Возможно ли это?
когда я пытался это сделать, я получал значение тега mydate -{{item.date}}
6 ответов:
использовать формат
date filter
такой:<mydate>{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}</mydate>
я столкнулся с проблемой с unix time отформатирован как число секунд от начала эпохи или как число МС, который используется в JavaScript. Строго говоря, AngularJS не преобразует временную метку Unix в дату, а число с миллисекундами, которое в 1000 раз больше, поэтому сначала вам нужно будет умножить входное число на 1000, например:
<mydate>{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}</mydate>
в противном случае ваша дата будет неверной.
Если у вас есть временная метка Unix, вам, вероятно, придется умножить свою временную метку на 1000, так как временная метка Unix находится в секундах, а фильтр даты AngularJs требует миллисекунд.
vm.milliseconds = Date('1441981121' * 1000);
затем используйте функцию $filter ()
var date = $filter('date')(vm.milliseconds, 'd MMMM yyyy');
или вы можете использовать в ng-bind
<span ng-bind="myController.milliseconds | date : 'd MMMM yyyy'"></span>
вы должны использовать фильтр даты, который уже предоставлен angular: здесь
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.
<rs-time start-time="1478513323" digital-format="'ddd MMM d h:mm TT'"></rs-time>
Проверьте демо на 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 d h:mm TT - Mon Nov 7 at 4:04 PM
на странице документации Github