Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia todos!
Abaixo uma função que soma um dia a uma data.
Espero ter ajudado,
abraços,
Léo
// Autor da lógica de data: hunternh
// Documentador: Leonardo Nobre
// Data: 31/01/2008 - 11:45h
// txtData - é a data inicial.
// DiasAdd - É quantos dias você quer adicionar a txtData.
function SomarData(txtData,DiasAdd)
{
// Tratamento das Variaveis.
// var txtData = "01/01/2007"; //poder ser qualquer outra
// var DiasAdd = 10 // Aqui vem quantos dias você quer adicionar a data
var d = new Date();
// Aqui eu "mudo" a configuração de datas.
// Crio um obj Date e pego o campo txtData e
// "recorto" ela com o split("/") e depois dou um
// reverse() para deixar ela em padrão americanos YYYY/MM/DD
// e logo em seguida eu coloco as barras "/" com o join("/")
// depois, em milisegundos, eu multiplico um dia (86400000 milisegundos)
// pelo número de dias que quero somar a txtData.
d.setTime(Date.parse(txtData.split("/").reverse().join("/"))+(86400000*(DiasAdd)))
// Crio a var da DataFinal
var DataFinal;
// Aqui comparo o dia no objeto d.getDate() e vejo se é menor que dia 10.
if(d.getDate() < 10)
{
// Se o dia for menor que 10 eu coloca o zero no inicio
// e depois transformo em string com o toString()
// para o zero ser reconhecido como uma string e não
// como um número.
DataFinal = "0"+d.getDate().toString();
}
else
{
// Aqui a mesma coisa, porém se a data for maior do que 10
// não tenho necessidade de colocar um zero na frente.
DataFinal = d.getDate().toString();
}
// Aqui, já com a soma do mês, vejo se é menor do que 10
// se for coloco o zero ou não.
if((d.getMonth()+1) < 10){
DataFinal += "0"+(d.getMonth()+1).toString();
}
else
{
DataFinal += (d.getMonth()+1).toString())+"/"+d.getFullYear().toString();
}
}31/01/2008
Cara estava utilizando essa lógica ai... e tava tudo ok.... mas hoje reparei que tem algo errado.
Eu to somando 30 dias numa data e ele ta pegando a data de hoje, ta muito estranho.
var dia = hoje.getDate();
var mes = hoje.getMonth();
var ano = hoje.getFullYear();
var texData = dia + "/" + mes + "/" + ano;
var dias = 30;
var hoje = new Date();
hoje.setTime(Date.parse(texData.split("/").reverse().join("/"))+(86400000*(dias)))
Essa variavel hoje fica dando a data de hoje, sendo que estou somando os dias.
tem uma forma bem mais simples para isso
var depois = new Date();
depois.setDate(depois.getDate() + 30);
var hoje = new Date();
hoje.setDate(hoje.getDate());
alert("Data de hoje " + hoje.getDate() + "/" + (hoje.getMonth() + 1) + "/" + hoje.getFullYear());
alert("Daqui 30 dias " + depois.getDate() + "/" + (depois.getMonth() + 1) + "/" + depois.getFullYear());
=D
Otavio luiz, deu certinho.
Olá.
Fui utilizar a função e ela inicialmente apresentou um erro de parenteses.
Assim que corrigi, estavam faltando algumas "barras" na data final, e também faltava concatenar o ano quando o mes era menor que dez.
Abaixo o código que utilizei e que deu certo aqui para mim http://forum.imasters.com.br/public/style_emoticons/default/grin.gif
-----------------------------------------
function SomarData(txtData,DiasAdd)
{
alert('oi')
// Tratamento das Variaveis.
------------------
Mas a lógica ta perfeita.
http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
abraços,
Felipe