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 🙂

  • Moment.js: formatea la date en una zona horaria específica
  • Problema de encoding al integrar la biblioteca Moment JS
  • MomentJS a veces devuelve dates no válidas
  • momento js extraer año de la cadena
  • La hora de Momentjs UTC es extraña
  • MomentJS Day diff dates solo excluyendo el time
  • Enlace entre input y Moment.js en AngularJS
  • Cómo insert el momento JS en MySQL
  • Moment.js: el resultado siempre es "hace unos segundos" en firefox / ie
  • moment.js cambia el time para gmt
  • ¿Cómo calcular el número de 'días laborables' entre dos dates en Javascript usando moment.js?
  • ¿Cómo convertir horas y minutos a minutos con moment.js?
  • Extraiga un sufijo de date con MomentJS para hacerlo superíndice
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.