Moment: حرف واحد من تنسيق الآن ()

تم إنشاؤها على ٢٩ نوفمبر ٢٠١٥  ·  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/

في الواقع ، يمكنك كتابة الوظيفة الخاصة بك للقيام بذلك ، لذلك لست متأكدًا مما إذا كانت اللحظة تحتاج حقًا إلى دعمها.
أحد الأسئلة المثيرة للاهتمام هو إذا كانت اللحظة تدعم هذه الميزة ، فما التسمية المختصرة لـ "بضع ثوانٍ"؟

سيكون حرف "s" (مثال: 5 ثوانٍ ، 35 ثانية) ولكن به مقدار الثواني. التعامل مع كمية صغيرة من العقارات في المشروع.

يمكنك ضبط هذا عبر الإعدادات المحلية:

  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 (& bump) ، أود أيضًا أن أرى هذا يحدث

+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 التقييمات

القضايا ذات الصلة

dogukankotan picture dogukankotan  ·  3تعليقات

benhathaway picture benhathaway  ·  3تعليقات

nikocraft picture nikocraft  ·  3تعليقات

chitgoks picture chitgoks  ·  3تعليقات

BCup picture BCup  ·  3تعليقات