Ir para conteúdo

POWERED BY:

Arquivado

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

Dário Cardoso

[Resolvido] data de amanhã

Recommended Posts

function SomarData($data, $dias, $meses, $ano)
{
   /*www.brunogross.com*/
   //passe a data no formato dd/mm/yyyy 
   $data = explode("/", $data);
   $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses,
     $data[0] + $dias, $data[2] + $ano) );
   return $newData;
}

echo 'Amanhã é dia '.SomarData(date('d/m/y'),1);

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o código tá bem explicado. Tenta entender o que está sendo feito nele. O que você vai ter que fazer é mudar a forma que pega o date para Y-m-d e mudar a ordem dos índices da $data. Vai testando que uma hora funciona.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E num é que ainda to tentando...

 

eu fiz assim:

function SomarData($data, $ano, $meses, $dias)
                   {
                   $data = explode("-", $data);
                   //ESSA LINHA ABAIXO EU NÃO ENTENDI!
                   $newData = date("Y-m-d", mktime(0, 0, 0, $data[2] + $ano, $data[0] + $dias, $data[1] + $meses) );
                   //Fiz isso pra eu me orientar
                   echo "ano:".$data[0]."<BR>";
                   echo "mes:".$data[1]."<BR>";
                   echo "dia:".$data[2]."<BR>";
                   return $newData;
                   }
                   //Coloquei @ para ocultar erros
                   echo @SomarData(date('Y-m-d'),1);
me retorna assim:

ano:2009

mes:08

dia:07

2014-01-30

 

>> Onde coloquei @ ele sempre me retorna 2 erros:

Warning: Missing argument 3 for SomarData(), called in C:\xampp\htdocs\dario\cadof\dimar\inicio.php on line 55 and defined in C:\xampp\htdocs\dario\cadof\dimar\inicio.php on line 45

e

Warning: Missing argument 4 for SomarData(), called in C:\xampp\htdocs\dario\cadof\dimar\inicio.php on line 55 and defined in C:\xampp\htdocs\dario\cadof\dimar\inicio.php on line 45

Por isso coloquei @, dai beleza...

 

>> Essa aqui eu não entendi:

$newData = date("Y-m-d", mktime(0, 0, 0, $data[2] + $ano, $data[0] + $dias, $data[1] + $meses) );

>> Ele soma: ano com dias? dias com ano ? Num entendi!

 

 

Por favor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o erro foi falha minha, mas você poderia ter percebido...

 

function SomarData($data, $ano, $meses, $dias)

Veja que são passados 4 parâmetros para a função e nenhum deles é opcional. O que seria um parâmetro opcional?

 

function SomarData($data, $dias, $meses = 0, $ano = 0)

Agora os valores $meses e $ano são opcionais.

 

Vamos explicar a função. Leia os comentários para entender.

 

function SomarData($data, $dias, $meses = 0, $ano = 0)
                   {
                   $data = explode("-", $data);// aqui você separa a $data que foi passada por -, o que vai gerar um array conforme você percebeu abaixo.
                   //ESSA LINHA ABAIXO EU NÃO ENTENDI!
                   $newData = date("Y-m-d", mktime(0, 0, 0, $data[0] + $ano, $data[2] + $dias, $data[1] + $meses) );
                   // aqui você soma o o array $data com a quantidade de meses, anos ou dias que você colocou na função.
                   //Fiz isso pra eu me orientar
                   echo "ano:".$data[0]."<BR>";
                   echo "mes:".$data[1]."<BR>";
                   echo "dia:".$data[2]."<BR>";
                   return $newData;
                   }
                   echo SomarData(date('Y-m-d'),1);

 

Eu corrigi a ordem dos índices na parte que faz a soma. Deve funcionar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o erro foi falha minha, mas você poderia ter percebido...

 

function SomarData($data, $ano, $meses, $dias)

Veja que são passados 4 parâmetros para a função e nenhum deles é opcional. O que seria um parâmetro opcional?

 

function SomarData($data, $dias, $meses = 0, $ano = 0)

Agora os valores $meses e $ano são opcionais.

 

Vamos explicar a função. Leia os comentários para entender.

 

function SomarData($data, $dias, $meses = 0, $ano = 0)
                   {
                   $data = explode("-", $data);// aqui você separa a $data que foi passada por -, o que vai gerar um array conforme você percebeu abaixo.
                   //ESSA LINHA ABAIXO EU NÃO ENTENDI!
                   $newData = date("Y-m-d", mktime(0, 0, 0, $data[0] + $ano, $data[2] + $dias, $data[1] + $meses) );
                   // aqui você soma o o array $data com a quantidade de meses, anos ou dias que você colocou na função.
                   //Fiz isso pra eu me orientar
                   echo "ano:".$data[0]."<BR>";
                   echo "mes:".$data[1]."<BR>";
                   echo "dia:".$data[2]."<BR>";
                   return $newData;
                   }
                   echo SomarData(date('Y-m-d'),1);

 

Eu corrigi a ordem dos índices na parte que faz a soma. Deve funcionar.

 

Carlos Eduardo

 

 

A ordem aqui, pode influenciar??? :mellow:

$newData = date("Y-m-d", mktime(0, 0, 0, $data[0] + $ano, $data[2] + $dias, $data[1] + $meses) );

 

acho que é ela pois ainda nao deu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Matias...

 

Após muita luta eu consegui obter a data de amanha (prox. dia) no formato yyyy-mm-dd, veja:

  //### INICIO ## SABER DATA DE AMANHA ###
   $data_hoje=date('d-m-Y');
   $data_hoje=explode("-", $data_hoje);
   $data_amanha=date("d-m-Y", mktime(0, 0, 0, $data_hoje[1], $data_hoje[0] + 1, $data_hoje[2]));
   //Converter formato de dd-mm-yyyy para yyyy-mm-dd
   $data_amanha_mysql=explode("-", $data_amanha);
   $dia=$data_amanha_mysql[0];
   $mes=$data_amanha_mysql[1];
   $ano=$data_amanha_mysql[2];
   $data_amanha_mysql=$ano."-".$mes."-".$dia;
   echo "O dia seguinte é $data_amanha_mysql";
  //### FIM ## SABER DATA DE AMANHA ###
Lembrando que o formato da data é padrao do Myslq, ou seja, vou poder comparar com as datas do meu banco...

Sei que pode ser simplificado, mas meus conhecimentos ainda são poucos, se alguem quizer simplificar, faça-o depois poste ai, valeu! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Matias, obrigadao kra http://forum.imasters.com.br/public/style_emoticons/default/clap.gif , hoje aprendi mais uma... http://forum.imasters.com.br/public/style_emoticons/default/coolio.gif

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.