Calcular dias entre duas datas com JavaScript

Hoje na parte da tarde, estava eu criando um aplicativo para um cliente no qual os usuários enviarão para ele solicitações de garantia para um determinado produto. Quando cheguei em uma certa parte do projeto, verifiquei que precisaria calcular os dias entre duas datas e precisava necessariamente ser com JavaScript.

Em meus arquivos locais, eu não tinha nada do gênero, então como sempre fui de encontro a ele e encontrei o seguinte script:

var dateDif = {
// Fonte: http://www.bigbold.com/snippets/posts/show/2501
dateDiff: function(strDate1,strDate2){
return (((Date.parse(strDate2))-(Date.parse(strDate1)))/(24*60*60*1000)).toFixed(0);
}
}

Fantástico, simples e eficiente. Era tudo o que eu procurava. Então, criei outra função para verificar a data atual com a data informada pelo usuário, passá-las para a função demonstrada acima e obter o resultado esperado, ou seja, os dias entre duas datas.

As datas que serão passadas para a tal função, precisa estar no seguinte formato:

November 22 2006 – Mês escrito em inglês, seguido do dia e ano. Com isto em mente, desenvolvi o seguinte:

function diasEntreDatas() {
// Declarações de variáveis
var mes, data, dataAtual, dataInfo, arrDataInfo, novaDataInfo, diasEntreDatas;
// Lista dos meses em inglês
mes = [];
mes[0] = “January”;
mes[1] = “February”;
mes[2] = “March”;
mes[3] = “April”;
mes[4] = “May”;
mes[5] = “June”;
mes[6] = “July”;
mes[7] = “August”;
mes[8] = “September”;
mes[9] = “October”;
mes[10] = “November”;
mes[11] = “December”;
// Instancia o objeto Date
data = new Date();
// Pega a data de hoje no seguinte formato: November 22 2006
dataAtual = mes[data.getMonth()] + ‘ ‘ + data.getDate() + ‘ ‘ + data.getFullYear();
// Pega a data informada pelo usuário
dataInfo = document.getElementById(‘data’).value;
// Separa a data informada pelo usuário através da barra /
arrDataInfo = dataInfo.split(‘/’);
// Formata a data para o seguinte formato: November 22 2006
novaDataInfo = mes[(arrDataInfo[1] – 1)] + ‘ ‘ + arrDataInfo[0] + ‘ ‘ + arrDataInfo[2];
// Saberemos o total de dias entre: a data informada pelo usuário e a data atual
diasEntreDatas = dateDif.dateDiff(novaDataInfo, dataAtual);
alert(diasEntreDatas);
}

Esta foi minha solução para o problema, e aqui está para compartilhar com todos vocês, espera que seja útil. Até o próximo.

Fonte: http://leandrovieira.com/archive/calcular-dias-entre-duas-datas-com-javascript