AngularJS. Преобразование значения тега (время Unix в читаемое человеком время)


Я получаю данные из базы данных и отображает его:

    <ul>
       <li ng-repeat="item in items>
          <mydate>{{item.date}}</mydate>
        </li>
    </ul>

здесь {{item.date}} - это дата Unix, например 1374843600. Как я могу установить формат даты с помощью директив AngularJS? Возможно ли это?

когда я пытался это сделать, я получал значение тега mydate -{{item.date}}

6 58

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