segundos obtener moment minutos meses horas hora habiles fechas fecha entre diferencia dias comparar calcular actual javascript date momentjs

javascript - obtener - moment js fecha



Consigue diferencia de horas entre dos fechas en Moment Js (7)

Puedo obtener la diferencia entre dos fechas usando MomentJs de la siguiente manera:

moment(end.diff(startTime)).format("m[m] s[s]")

Sin embargo, también quiero mostrar la hora cuando corresponda (solo cuando hayan transcurrido> = 60 minutos).

Sin embargo, cuando intento recuperar las horas de duración utilizando lo siguiente:

var duration = moment.duration(end.diff(startTime)); var hours = duration.hours();

está devolviendo la hora actual y no el número de horas entre las dos fechas.

¿Cómo obtengo la diferencia en horas entre dos Momentos?


El siguiente bloque de código muestra cómo calcular la diferencia en el número de días entre dos fechas utilizando MomentJS.

var now = moment(new Date()); //todays date var end = moment("2015-12-1"); // another date var duration = moment.duration(now.diff(end)); var days = duration.asDays(); console.log(days)


Estabas cerca Solo necesita utilizar el método duration.asHours() (consulte la documentación ).

var duration = moment.duration(end.diff(startTime)); var hours = duration.asHours();


O puedes hacer simplemente:

var a = moment(''2016-06-06T21:03:55'');//now var b = moment(''2016-05-06T20:03:55''); console.log(a.diff(b, ''minutes'')) // 44700 console.log(a.diff(b, ''hours'')) // 745 console.log(a.diff(b, ''days'')) // 31 console.log(a.diff(b, ''weeks'')) // 4

docs: here


Todo lo que necesita hacer es pasar en hours como el segundo parámetro para la función de diferencia de momentos.

var a = moment([21,30,00], "HH:mm:ss") var b = moment([09,30,00], "HH:mm:ss") a.diff(b, ''hours'') // 12

Docs: https://momentjs.com/docs/#/displaying/difference/

Ejemplo:

const dateFormat = "YYYY-MM-DD HH:mm:ss"; // Get your start and end date/times const rightNow = moment().format(dateFormat); const thisTimeYesterday = moment().subtract(1, ''days'').format(dateFormat); // pass in hours as the second parameter to the diff function const differenceInHours = moment(rightNow).diff(thisTimeYesterday, ''hours''); console.log(`${differenceInHours} hours have passed since this time yesterday`);

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"> </script>


var timecompare = { tstr: "", get: function (current_time, startTime, endTime) { this.tstr = ""; var s = current_time.split(":"), t1 = tm1.split(":"), t2 = tm2.split(":"), t1s = Number(t1[0]), t1d = Number(t1[1]), t2s = Number(t2[0]), t2d = Number(t2[1]); if (t1s < t2s) { this.t(t1s, t2s); } if (t1s > t2s) { this.t(t1s, 23); this.t(0, t2s); } var saat_dk = Number(s[1]); if (s[0] == tm1.substring(0, 2) && saat_dk >= t1d) return true; if (s[0] == tm2.substring(0, 2) && saat_dk <= t2d) return true; if (this.tstr.indexOf(s[0]) != 1 && this.tstr.indexOf(s[0]) != -1 && !(this.tstr.indexOf(s[0]) == this.tstr.length - 2)) return true; return false; }, t: function (ii, brk) { for (var i = 0; i <= 23; i++) { if (i < ii) continue; var s = (i < 10) ? "0" + i : i + ""; this.tstr += "," + s; if (brk == i) break; } }};


var start=moment(1541243900000); var end=moment(1541243942882); var duration = moment.duration(end.diff(startTime)); var hours = duration.asHours();

Como puede ver, la fecha de inicio y finalización deben ser objetos de momento para que este método funcione.


var __startTime = moment("2016-06-06T09:00").format(); var __endTime = moment("2016-06-06T21:00").format(); var __duration = moment.duration(moment(__endTime).diff(__startTime)); var __hours = __duration.asHours(); console.log(__hours);