Calcular intervalo entre duas datas
Boa tarde pessoal,
Não manjo muito de javascript, principalmente se tratando da classe Date.
Preciso calcular um intervalo entre duas datas. Tenho o seguinte código que peguei em um site.
function diasDecorridos(dt1, dt2){
// variáveis auxiliares
var minuto = 60000;
var dia = minuto * 60 * 24;
var horarioVerao = 0;
// ajusta o horario de cada objeto Date
dt1.setHours(0);
dt1.setMinutes(0);
dt1.setSeconds(0);
dt2.setHours(0);
dt2.setMinutes(0);
dt2.setSeconds(0);
// determina o fuso horário de cada objeto Date
var fh1 = dt1.getTimezoneOffset();
var fh2 = dt2.getTimezoneOffset();
// retira a diferença do horário de verão
if(dt2 > dt1){
horarioVerao = (fh2 - fh1) * minuto;
}
else{
horarioVerao = (fh1 - fh2) * minuto;
}
var dif = Math.abs(dt2.getTime() - dt1.getTime()) - horarioVerao;
return Math.ceil(dif / dia);
}
Porém este código está com um bug quando tento calcular a diferença entre um mês e outro.
Exemplo:
Escolho 01/10/14 e 02/10/14 o resultado do intervalo é de 1 dia. Este está correto.
Escolho 30/09/14 e 01/10/14 o resultado do intervalo é de 2 dias. Este está incorreto pois o mês 9 tem 30 dias e não 31.
Tentei identificar algo de errado mas até agora não encontrei. Se puderem ajudar fico grato.
Valeu!
Discussão (1)
Carregando comentários...