У меня возникают трудности с форматированием времени с использованием 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
Поэтому я не уверен, с чего начать, и любая помощь приветствуется!
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>
fromNow
чтобы добавить ее в некоторые условия, как я упоминал выше? Используя это прямо сейчас с использованием настроек Moment defaultRelativeTime
, таких как a month ago
и т. Д. Я хотел бы иметь некоторые особые случаи, как указано выше, где в некоторых случаях мне понадобится час или минута времени. Спасибо за помощь до сих пор!