1: Calcule o número de dias de diferença entre duas datas
por exemplo:
str1 = "20/01/2002"
str2 = "11/10/2002"
Como calcular o número de dias entre str1 e str2 usando javaScript?
Copie o código do código da seguinte forma:
<html>
<cabeça>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<título></título>
</head>
<corpo>
<button onClick="btnCount_Click()">Calcule a diferença em dias</button>
<linguagem script="JavaScript">
função btnCount_Click(){
s1 = "10/01/2002"
s2 = "1/10/2002"
alerta(DataDiff(s1,s2))
}
//Função para calcular a diferença em dias, universal
function DateDiff(sDate1, sDate2){ //sDate1 e sDate2 estão no formato 2002-12-18
var aDate, oDate1, oDate2, iDays
aData = sData1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //Converter para o formato 18/12/2002
aData = sDate2.split("-")
oData2 = nova Data(aData[1] + '-' + aData[2] + '-' + aData[0])
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000/60/60/24) //Converte a diferença em milissegundos para dias
retornar iDays
}
2: Calcule a data após um certo número de dias
Em JavaScript, calcule a data vários dias depois da data de hoje. É muito menos conveniente do que em .Net. Uma função pode resolver o problema. Esse problema me incomodou por um tempo e finalmente foi resolvido com a introdução de um internauta. Poste e compartilhe.
Copie o código do código da seguinte forma:
<linguagem script="javascript" type="text/javascript">
var datainicial = nova data(); var intValue = 0;
var datafim = null;
intValue = startDate.getTime(); intValue += 100 * (24 * 3600 * 1000);
data final = nova data (intValue);
alerta (endDate.getFullYear()+"-"+ (endDate.getMonth()+1)+"-"+ endDate.getDate());
</script>
O 100 acima representa a data 100 dias depois, que você pode modificar. Date.getTime() em JS só pode suportar datas posteriores a 1970.01.01 e o mês é 0 - 11, o que é um pouco diferente, então evite-o. Claro que você também pode calcular datas posteriores a uma data específica.
Copie o código do código da seguinte forma:
<linguagem script="javascript" type="text/javascript">
var startDate = nova data (2007, (8-1), 1, 10, 10, 10);
var intValor = 0;
var datafim = null;
intValue = startDate.getTime(); intValue += 100 * (24 * 3600 * 1000);
data final = nova data (intValue);
alerta (endDate.getFullYear()+"-"+ (endDate.getMonth()+1)+"-"+ endDate.getDate());
</script>