Пользовательское форматирование на время с использованием Moment.js

0

У меня возникают трудности с форматированием времени с использованием moment.js. Я решил попробовать angular-moment и столкнулся с некоторыми ограничениями, и, посмотрев документацию на moment.js, кажется, что было бы намного лучше создать настраиваемую директиву, которая использует moment. Здесь лежит моя проблема, у меня есть некоторый опыт и знания основных директив, но я не уверен, как продвигаться вперед с созданием директивы, которая использует moment для форматирования даты/времени. Итак, вот правила, которые я хочу придерживаться:

Менее 1 минуты назад: печатать как a few seconds ago Более 1 минуты назад && меньше 1 часа назад: печатать как X minutes ago Более 1 часа назад: print as h:mm a Вчера (Это должно сравнить два дня с см., если это сегодня или вчера): печатать как Yesterday чем вчера: печатать как MMM DD

Поэтому я не уверен, с чего начать, и любая помощь приветствуется!

  • 0
    Вы попробовали время? momentjs.com/docs/#/displaying/from
  • 0
    @SwarajGiri Я посмотрю, моя самая большая проблема с передачей этого в рабочую директиву
Показать ещё 1 комментарий
Теги:
momentjs

1 ответ

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

Moment.js - это путь! Я рекомендую использовать угловой фильтр вместо директивы.

Вот как вы можете реализовать один с функцией moment.js fromNow:

var fromNow = function () {
        return function (value, format) {
            return moment(value).fromNow();
        };
    };

    angular.module('myApp').filter('fromNow', fromNow);

И вы просто называете это из html:

<span>{{player.activeSince | fromNow}}</span>
  • 0
    Во-первых, спасибо, что предложили использовать фильтр с fromNow, так как это сильно сократило мой код, так как я пытался использовать директиву, которая кажется ненужной, когда вы можете достичь этого с помощью этого. Как бы вы отредактировали эту функцию fromNow чтобы добавить ее в некоторые условия, как я упоминал выше? Используя это прямо сейчас с использованием настроек Moment defaultRelativeTime , таких как a month ago и т. Д. Я хотел бы иметь некоторые особые случаи, как указано выше, где в некоторых случаях мне понадобится час или минута времени. Спасибо за помощь до сих пор!
  • 0
    Вы пытались настроить относительное время? momentjs.com/docs/#/customization/relative-time Если у вас есть бизнес-логика, которая добавляет или уменьшает время, она должна делать это в контроллере.
Показать ещё 6 комментариев

Ещё вопросы

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