Moment.js ¿Cómo usar fromNow () para devolver todo en horas?

He buscado en moment.js docs y stackoverflow para encontrar una manera de usar la función fromNow() pero devolverlo todo en horas.

Lo que quiero decir es:

 moment([2017, 01, 05]).fromNow(); // a day ago 

debiera ser

 moment([2017, 01, 05]).fromNow(); // 24 hours ago 

Sé que es posible hacer esto usando .diff y probablemente otras funciones similares y luego agregar el texto, pero ¿es posible usar .fromNow() para hacer esto?

2 Solutions collect form web for “Moment.js ¿Cómo usar fromNow () para devolver todo en horas?”

Puede usar relativeTimeThreshold para personalizar los umbrales para el momento relativo del momento.

Como dice la documentación:

duration.humanize tiene umbrales que definen cuándo una unidad se considera un minuto, una hora, etc. Por ejemplo, de forma predeterminada, más de 45 segundos se considera un minuto, más de 22 horas se considera un día y así sucesivamente. Para cambiar esos puntos de corte, use moment.relativeTimeThreshold(unit, limit) donde unit es uno de s , m , h , d , M

En su caso, puede boost los umbrales de horas para obtener días relativos como horas. Aquí un ejemplo de trabajo que muestra el tiempo en horas de 1 hora a 26 días:

 var m1 = moment().subtract(5, 'h'); var m2 = moment().subtract(55, 'h'); var m3 = moment().subtract(1, 'd'); // Default results console.log(m1.fromNow()); console.log(m2.fromNow()); console.log(m3.fromNow()); // Change relativeTimeThreshold moment.relativeTimeThreshold('m', 60); moment.relativeTimeThreshold('h', 24*26); // Results in hours console.log(m1.fromNow()); console.log(m2.fromNow()); console.log(m3.fromNow()); 
  

Si definitivamente quiere usar fromNow() , no veo otra manera que no sea la función incorporada de momento. Por ejemplo, puede anularlo para devolver la diferencia en horas de la siguiente manera:

 moment.fn.fromNow = function (a) { var duration = moment().diff(this, 'hours'); return duration; } 

Luego puedes verificar que fromNow() devuelve el valor en horas:

 console.log(moment([2017,0,6]).fromNow()); 

que devuelve:

 19 

Nota: Intentado a las 19:00 🙂

  • Encuentre la siguiente instancia de un día de la semana determinado (es decir, el lunes) con moment.js
  • Usar Moment.js para mostrar la abreviatura de zona local de los usuarios
  • Cómo usar Moment.JS para verificar si la hora actual es entre 2 veces
  • MomentJS - ¿Cómo get el último día del mes anterior desde la date?
  • ¿Cómo probar una cadena es una date válida o no usa el momento?
  • Cómo encontrar dinámicamente el próximo mes y año usando el momento js en jQuery
  • En Moment.js, ¿cómo se obtiene el trimestre financiero actual?
  • Moment.js: obtiene diferencia en dos cumpleaños en años, meses y días
  • moment.js - UTC no funciona como lo espero
  • verificar el formatting de la date con moment.js
  • Obteniendo moment.js para mostrar las dates apropiadas a la información que se está viendo
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.