Estoy buscando una forma de hacer una resta adecuada entre dos objetos de Fecha de javascript y obtener el delta del día.javascript date resta
Este es mi enfoque, pero falla por la fecha de hoy como entrada:
<script type="text/javascript">
function getDayDelta(incomingYear,incomingMonth,incomingDay){
var incomingDate = new Date(incomingYear,incomingMonth,incomingDay);
var today = new Date();
var delta = incomingDate - today;
var resultDate = new Date(delta);
return resultDate.getDate();
}
//works for the future dates:
alert(getDayDelta(2009,9,10));
alert(getDayDelta(2009,8,19));
//fails for the today as input, as expected 0 delta,instead gives 31:
alert(getDayDelta(2009,8,18));
</script>
lo que sería un mejor enfoque para esto?
gracias por la corrección, pero esto parece fallar en: getDayDelta (2009,8,19); // debería devolver 1 pero devuelve 0 (es 18 en mi tiempo local) – Hellnar
Sí, eso es porque 'today' incluye la hora, ver mi edición ... – CMS
@Crib: El problema es que' incomingDate' tiene una porción de tiempo de 0 horas, 0 minutos, 0 segundos y 0 milisegundos. Tienes que hacer lo mismo para "hoy" o obtendrás días parciales para un día adelante/atrás. He editado la respuesta para reflejar el cambio. –