Tengo dos fechas de entrada que toman del control Selector de fecha. Seleccioné la fecha de inicio del 2/2/2012 y la fecha de finalización del 2/7/2012. He escrito el siguiente código para eso.
Debería obtener el resultado como 6 pero obtengo 5.
function SetDays(invoker) {
var start = $find('<%=StartWebDatePicker.ClientID%>').get_value();
var end = $find('<%=EndWebDatePicker.ClientID%>').get_value();
var oneDay=1000 * 60 * 60 * 24;
var difference_ms = Math.abs(end.getTime() - start.getTime())
var diffValue = Math.round(difference_ms / oneDay);
}
¿Alguien puede decirme cómo puedo obtener la diferencia exacta?
javascript
Vaibhav Deshmukh
fuente
fuente
Respuestas:
http://momentjs.com/ o https://date-fns.org/
De los documentos de Moment:
o para incluir el inicio:
Es mejor que jugar con marcas de tiempo y zonas horarias manualmente.
Dependiendo de su caso de uso específico, puede
a/b.startOf('day')
y / oa/b.endOf('day')
para forzar que el diff sea inclusivo o exclusivo en los "extremos" (como lo sugiere @kotpal en los comentarios).true
para obtener una diferencia de punto flotante que puedaMath.floor
,Math.ceil
oMath.round
según sea necesario.'seconds'
lugar de'days'
y luego dividiendo entre24*60*60
.fuente
Math.abs(a.diff(b, 'days'))+1
startOf
muta el momento. Si no quieres eso, entonces hazloa.clone().startOf('day').diff(b.clone().startOf('day'))
.Si está utilizando moment.js , puede hacerlo fácilmente.
Si desea encontrar la diferencia entre una fecha dada y la fecha actual en número de días (ignorando la hora), asegúrese de eliminar la hora del momento objeto de la fecha actual como se muestra a continuación
Para encontrar la diferencia entre una fecha dada y una fecha actual en número de días
fuente
current.diff(given, 'days')
para que se redondea.1
se pierde unTratar:
fuente
Pruebe esto usando moment.js (es bastante fácil calcular las operaciones de fecha en javascript)
firstDate.diff (secondDate, 'days', false); // verdadero | falso para el valor de fracción
El resultado le dará el número de días en entero.
fuente
También puede usar este código: moment ("yourDateHere", "YYYY-MM-DD"). FromNow (). Esto calculará la diferencia entre hoy y su fecha provista.
fuente
Esto funciona para mi:
fuente
Hice una función reutilizable rápida en ES6 usando Moment.js.
fuente
MVC tengo dos entradas de texto 1: número del día 2: selector de fecha y hora
javascipt
para calcular el número a partir de la fecha de uso
para calcular el número de días entre dos fechas use
no olvides agregar http://momentjs.com/
fuente