Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Plábyo Rainer Gianianny

[Resolvido] Função de somar data atual mais 7 dias

Recommended Posts

Pessoal, é o seguinte, eu tenho um text field chamado datainicio e um text fiel chamado datafim e preciso de uma função que ao digitar a datainicio, automaticamente apareça a datafim com 7 dias a mais (uma semana).

 

Por exemplo, o user digita 11/10/2010 na datainicio, automaticamenta aparecerá 15/10/2010 na datafim.

 

Além disso, preciso que nessa mesma função valide as datas, não aceitando que a datainicio seja maior que a datafim.

 

Tentei fazer uma função aqui mais não deu certo, segue abaixo o código: ps. O código abaixo está incorreto, é só um modelo que tentei fazer e não deu certo.

 

<script>
funtion somadata(){
data1 = (document.form1.datainicio.value);
data2 = (document.form1.datafim.value);
soma = datainicio + 7;
document.form1.datafim.value = soma;

}
</script>

 

A data1 e data2 são as variáveis que recebem o valor digitado e a variável soma recebe a datainicio mais 7 dias, só que não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eae.. usando o Date fica facil

 

 

exemplo:

 

var date = new Date();
date.setFullYear(2010);
date.setMonth(9s);// mes de 0 a 11
date.setDate(13);

date.setDate(date.getDate() + 7);

alert(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

para verificar as datas use o getTime..

Compartilhar este post


Link para o post
Compartilhar em outros sites

function somaData(){
   var dataInicial = document.form1.datainicio.value;//formato dd/mm/yyy

   if(dataInicial == '') return;

   dataInicial = dataInicial.split('/');

   var date = new Date();
   date.setFullYear(dataInicial[2]);
   date.setMonth(dataInicial[1]);// mes de 0 a 11
   date.setDate(dataInicial[0]);

   date.setDate(date.getDate() + 7);

   document.form1.datafim.value = date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear();

}

+/-

 

da uma testada e uma estudada tbm..

 

http://www.imasters.com.br/artigo/2114

http://www.truquesedicas.com/tutoriais/javascript/00012a.htm

http://forum.wmonline.com.br/topic/150300-validacao-de-data-em-javascript/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa, pior é que não está funcionando não sei porque, abaixo está o código do formulário:

 


<form id="form1" name="form1" method="post" action="">
            <table width="0" border="0">
              <tr class="style5">
                <td width="155"><span class="style6">Início da reserva:</span></td>
        <td width="217"><span class="style6">
          <label>
          <input name="datainicio" id="datainicio" value="<?php echo $_SESSION['datainicio']; ?>" wdg:mondayfirst="true" wdg:subtype="Calendar" wdg:mask="<?php echo $KT_screen_date_format; ?>" wdg:type="widget" wdg:singleclick="true" wdg:restricttomask="yes"/>
          </label>
        </span></td>
        <td width="147"><span class="style6">Final da reserva:</span></td>
        <td width="221"><span class="style6">
          <label>
          <input name="datafim" id="datafim" value="<?php echo $_SESSION['datafim']; ?>" wdg:mondayfirst="true" wdg:subtype="Calendar" wdg:mask="<?php echo $KT_screen_date_format; ?>" wdg:type="widget" wdg:singleclick="true" wdg:restricttomask="yes" />
          </label>
        </span></td>
        <td width="120"><span class="style6">
          <label>
          <input name="Listar" type="submit" class="style5" id="Listar" value="Listar Livros" />
          </label>
        </span></td>
        <td width="64"><div align="center"><a href="index_reservas.php" class="style7">Listar outro Gênero</a></div></td>
      </tr>
              </table>
            </form>

Eu utilizei o mesmo exemplo que tu postou, esse:

 

 

<script>
function somaData(){
   var dataInicial = document.form1.datainicio.value;//formato dd/mm/yyy

   if(dataInicial) == '' return;

   dataInicial = dataInicial.split('/');

   var date = new Date();
   date.setFullYear(dataInicial[2]);
   date.setMonth(dataInicial[1]);// mes de 0 a 11
   date.setDate(dataInicial[]0);

   date.setDate(date.getDate() + 7);

   document.form1.datafim.value = date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear();

}

</script>


Será o que está errado ?

 

obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu não vi você chamar a função no cod

 

<script>
function somaData(){
   var dataInicial = document.form1.datainicio.value;//formato dd/mm/yyy

   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.setFullYear(dataInicial[2]);
   date.setMonth(dataInicial[1]-1);// mes de 0 a 11
   date.setDate(dataInicial[0]);

   date.setDate(date.getDate() + 7);

   document.form1.datafim.value = date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear();

}

</script>
<form id="form1" name="form1" method="post" action="">
    <table width="0" border="0">
        <tr class="style5">
            <td width="155"><span class="style6">Início da reserva:</span></td>
            <td width="217"><span class="style6">
                    <label>
                        <input name="datainicio" id="datainicio" onkeyup='somaData();'/>
                    </label>
                </span></td>
            <td width="147"><span class="style6">Final da reserva:</span></td>
            <td width="221"><span class="style6">
                    <label>
                        <input name="datafim" id="datafim"  />
                    </label>
                </span></td>
            <td width="120"><span class="style6">
                    <label>
                        <input name="Listar" type="submit" class="style5" id="Listar" value="Listar Livros" />
                    </label>
                </span></td>
            <td width="64"><div align="center"><a href="index_reservas.php" class="style7">Listar outro Gênero</a></div></td>
        </tr>
    </table>
</form>

da uma olhada, tinha uns erros de digitação tbm..

Compartilhar este post


Link para o post
Compartilhar em outros sites

feriados não, mas fim de semana sim, seria os dias 0 e 6, domingo e sábado.

 

só adicionar isso depois do

 

date.setDate(date.getDate() + 7);

nova parte

   if(date.getDay() == 0){//domingo
	date.setDate(date.getDate() + 1);//pula para segunda
   }
   if(date.getDay() == 6){//sabado
	date.setDate(date.getDate()-1);//volta para sexta, ou +2 que vai para segunda
   }    

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.