Moment: Одна буква в формате fromNow ()

Созданный на 29 нояб. 2015  ·  21Комментарии  ·  Источник: moment/moment

Попытка использовать одну букву для описания формата с помощью moment().fromNow();

Пример: в отличие от 1 hour , 1 day , 1 week . Ищете 1h , 1d , 1w .

Это настройка, которую мне не хватает, чтобы использовать такой однобуквенный формат?

Самый полезный комментарий

Вы можете установить это через локаль:

  moment.locale('en', {
    relativeTime: {
      future: 'in %s',
      past: '%s ago',
      s:  'seconds',
      ss: '%ss',
      m:  'a minute',
      mm: '%dm',
      h:  'an hour',
      hh: '%dh',
      d:  'a day',
      dd: '%dd',
      M:  'a month',
      MM: '%dM',
      y:  'a year',
      yy: '%dY'
    }
  });

Все 21 Комментарий

Я не думаю, что сейчас есть такая функция в моменте.
Вы можете обратиться к http://momentjs.com/docs/#/displaying/fromnow/

На самом деле вы можете написать собственную функцию ur для этого, поэтому не уверен, действительно ли момент нужен для ее поддержки.
Возникает интересный вопрос: если момент поддерживает эту функцию, тогда каково короткое обозначение «несколько секунд»?

Это будет «s» (пример: 5s, 35s), но в секундах. Работа с небольшой недвижимостью по проекту.

Вы можете установить это через локаль:

  moment.locale('en', {
    relativeTime: {
      future: 'in %s',
      past: '%s ago',
      s:  'seconds',
      ss: '%ss',
      m:  'a minute',
      mm: '%dm',
      h:  'an hour',
      hh: '%dh',
      d:  'a day',
      dd: '%dd',
      M:  'a month',
      MM: '%dM',
      y:  'a year',
      yy: '%dY'
    }
  });

Да, рекомендуется установить языковой стандарт.

См: http://momentjs.com/docs/#/customization/relative -time /

Мне бы очень хотелось, чтобы эта функция была реализована в основной кодовой базе. Эти короткие аббревиатуры в стиле Instagram довольно распространены в наши дни.

Да, согласен, настроить под один язык довольно просто. Но ... если ваше приложение должно поддерживать несколько языков, внезапно вам нужно обработать его настройку на всех поддерживаемых вами языках. Было бы действительно хорошо, если бы сильное сообщество взяло на себя это бремя.

Не только приложения, которые должны поддерживать несколько языков, но и приложения, которые должны отображать как краткий, так и длинный формат в разных частях, также выиграют от этого. Прямо сейчас я должен использовать обходной путь в моем.

+1 - вот что сделало момент таким замечательным

+1 (& удар), тоже хотелось бы, чтобы это произошло

+1 - Ищу это прямо сейчас.

: +1:

👍

+1

+99999999999999

+1 пожалуйста

+1

var timeSince = function(date) {
  if (typeof date !== 'object') {
    date = new Date(date);
  }

  var seconds = Math.floor((new Date() - date) / 1000);
  var intervalType;

  var interval = Math.floor(seconds / 31536000);
  if (interval >= 1) {
    intervalType = 'y';
  } else {
    interval = Math.floor(seconds / 2592000);
    if (interval >= 1) {
      intervalType = 'm';
    } else {
      interval = Math.floor(seconds / 86400);
      if (interval >= 1) {
        intervalType = 'd';
      } else {
        interval = Math.floor(seconds / 3600);
        if (interval >= 1) {
          intervalType = "h";
        } else {
          interval = Math.floor(seconds / 60);
          if (interval >= 1) {
            intervalType = "m";
          } else {
            interval = seconds;
            intervalType = "now";
          }
        }
      }
    }
  }

  if (interval > 1 || interval === 0) {
    intervalType += 's';
  }

  return interval + ' ' + intervalType;
};

Источник: https://stackoverflow.com/questions/3177836/how-to-format-time-since-xxx-eg-4-minutes-ago-similar-to-stack-exchange-site

+1 нам это нужно

@dlindahl Большое спасибо за

Я сделал это для английского и немецкого языков:

  moment.updateLocale('en', {
    relativeTime: {
      future : 'in %s',
      past   : '%s ago',
      s  : function (number, withoutSuffix) {
        return withoutSuffix ? 'now' : 'a few seconds';
      },
      m  : '1m',
      mm : '%dm',
      h  : '1h',
      hh : '%dh',
      d  : '1d',
      dd : '%dd',
      M  : '1mth',
      MM : '%dmth',
      y  : '1y',
      yy : '%dy'
    }
  });
  moment.updateLocale('de', {
    relativeTime: {
      future : 'in %s',
      past : 'vor %s',
      s  : function (number, withoutSuffix) {
        return withoutSuffix ? 'jetzt' : 'ein paar Sekunden';
      },
      m  : '1min',
      mm : '%dmin',
      h  : '1Std',
      hh : '%dStd',
      d  : '1T',
      dd : '%dT',
      M  : '1M',
      MM : '%dM',
      y  : '1J',
      yy : '%dJ'
    }
  });

+1 со второй функцией; Я хочу, чтобы были доступны как короткие, так и длинные формы.
Я бы предложил "mo" на месяц (ы) на английском языке

мое решение для добавления формата, например, одного дня или одного года или чего-то еще, мне понравилось это:

let time=moment(re.date).fromNow(true);
let format=this.formatDate(time);
formatDate(date){
    let strDate=date.split(" ");
    let format="";
    if(strDate[0]=="un"||strDate[0]=="a"){
      strDate[0]="1";
      format=strDate[0]+strDate[1][0];
      return format
    }
    format=strDate[0]+strDate[1][0];
    return format

  }

возврат например 1д, 3г, 1м

С Уважением

Была ли эта страница полезной?
0 / 5 - 0 рейтинги