Временная метка фильтрации Angularjs в формате INPUT

0

Я должен представить временную метку в таблице, которая создается с помощью ng-repeat. Одним из полей в каждой записи является метка времени, отформатированная как YYMMDDHHmmSS, что означает две последние цифры года, две цифры за месяц, две на день, две на час и т.д. Например, 160331124536 будет представлять 31 марта 2016 года 12: 45: 36.

Я нашел сообщение, предлагающее следующий синтаксис в HTML:

{{One_Record.Timestamp | date:'medium'}}

Это заменяет строку цифр строкой даты, но дата и время совершенно неверны.

Есть ли способ рассказать углы, что такое содержимое полученной (начальной) строки, что-то вроде YYMMDD...?

Заранее спасибо.

  • 0
    Я думаю, что в этом случае вам нужно написать свой собственный фильтр.
Теги:

3 ответа

1
Лучший ответ

это еще не очень, но этот настраиваемый фильтр заставит вас идти,

angular.module('yourAppName').filter('special', function() {
  return function(input) {
    var date = new String(input),
        year = date[0] + date[1],
        month = date[2] + date[3],
        day = date[4] + date[5],
        hour = date[6] + date[7],
        minute = date[8] + date[9],
        seconds = date[10] + date[11];

    var reformattedDate = '20' + year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds;

    var newDate = new Date(reformattedDate);

    return newDate;
  };
});

а затем просто используйте его так,

{{ 160331124536 | special | date:'medium' }}
  • 0
    Спасибо @ZA. В самом деле, не очень (на самом деле, довольно некрасиво !!!), но, похоже, это сработает. Проверим это и сообщим. Спасибо за ваше предложение.
  • 0
    было бы лучше, если бы вы могли переформатировать дату, которую вы получаете (на стороне сервера) заранее, на стороне сервера. мс работает лучше всего.
Показать ещё 2 комментария
0

Используйте это внутри ng-repeat

  {{One_Record.Timestamp  |date : 'dd/MM/yyyy HH:mm'}}
  • 0
    Хорошо .... Вы решение для ввода = 20160331140437 (да, добавил две первые цифры за год) дал мне: 09/11/2608 05:59 . Нет правильной даты и времени.
  • 0
    Затем сначала вам нужно конвертировать ваши миллисекунды в объект даты, а затем использовать это
0

Возможно, это не совсем то, что вы хотели, но в моем случае я решил проблему следующим образом:

HTML:

{{getDate(timestamp)}}

JS:

$scope.getDate = function(timestamp) {
    var date = new Date(timestamp*1000);
    return date;
};

Я использовал функцию, которая вернула дату из метки времени. Вы также можете переформатировать дату или вернуть, например, только дни таким образом. Подробнее о методах Javascript Даты здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню