Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu estou utilizando esta função:
function somaData(validade){
var dataInicial = document.getElementById("dti").value;
if(dataInicial == '') return;
if(!dataInicial.match('[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}'))return;
dataInicial = dataInicial.split('/');
var date = new Date();
date.setMonth(dataInicial[1]);
date.setDate(dataInicial[0]);
date.setDate(date.getDate() + 7);
document.getElementById("dte").value = date.getDate()+'/'+(date.getMonth()+validade)+'/'+date.getFullYear();
}
Eu peguei na internet e adaptei, porém, não consigo somar a data.
No meu formulário, tem o campo Data Intregação, depois um campo Validade onde o usuário digitará um valor que é a quantidade de meses que a integração vai valer.
Por exemplo, hoje dia, 08/02/2011, se eu colocar validade de 12 meses, no campo Data de Expiração tem que ir para 08/02/2012. Se colocar 1 mes, 08/03/2011. Mas está colocando datas nada a ver. Se eu coloco 1, coloca 08/15/2011, nem tem mes 15.
O que está errado na função ?
Obrigado.
Nao... quero fazer no Lado Cliente!
Para instanciar a data, deve-se seguir o formato AAAA-MM-DD
var data = new Date('1988-09-21');
Para receber o dia, utilize o método getDate
var dia = data.getDate()
Para receber o mês, utilize o método getMonth. Este método tem uma particularidade, retorna os meses de 0 a 11. Para representações numéricas, é interessante adicionar + 1 a este valor
var mes = data.getMonth() + 1;
Para receber o ano com 4 dígitos, o método é getFullYear, com dois dígitos o método é apenas getYear.
var ano = data.getFullYear();
Para alterar em um mês, por exemplo, utilize o método setMonth aliado ao método getMonth.
// adiciona um mês
data.setMonth(data.getMont() + 1);
Nâo seria melhor fazer isso em uma linguagem de servidor (PHP, ASP, JSP...)?
Assim você tem um controle maior sobre as datas com as funções mktime e date...