Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Azevedo Lima

[Resolvido] Cálculo de Datas.

Recommended Posts

Olá para todos,

 

Estou com um pequeno probleminha aqui, sou novo na linguagem e estou desenvolvendo um sistema de consultas para determinados pacientes de uma clínica. Alguns pacientes terão que retornar à clínica após de 1 ano da sua 1ª consulta.

Alguém poderia me explicar, ou mesmo indicar, uma função em php que calcule através de uma determinada data inicial, uma outra data para daqui a 1 ano?

 

Exemplo:

Data de Entrada: 01/01/2009 -> Data digitada pelo usuário.

Data de Retorno: 01/01/2010 -> Data a ser calculada pela função.

 

Desde já agradeço a ajuda de todos.

 

Abraços,

 

Rodrigo Lima

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
}

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou então:

 

/**
 * Adiciona um período em uma data
 * @param string $de A data de entrada
 * @param string $add O período que será adicionado
 * @param string &$ds Variável passada por referência que receberá a data formatada
 * @param string $fs O formato que será utilizado na data de saída
 * @return integer Unix Timestamp referente a data futura
 */
function dateAdd( $de , $add , &$ds = null , $fs = 'd/m/Y' ){
 $dp = date_parse( $de );
 $ts = strtotime(
 $add,
 mktime( $dp[ 'hour' ] , $dp[ 'minute' ] , $dp[ 'second' ] , $dp[ 'month' ] , $dp[ 'day' ] , $dp[ 'year' ] )
 );
 $ds = date( $fs , $ts );

 return $ts;
}

dateAdd( '01/01/2009' , '+1Month' , $futuro );
var_dump( $futuro ); //string(10) "01/02/2009"

dateAdd( '01/01/2009' , '+1Year' , $futuro );
var_dump( $futuro ); //string(10) "01/01/2010"

dateAdd( '01/01/2009 11:55:00' , '+1Year +3Months +2Days' , $futuro );
var_dump( $futuro ); //string(10) "03/04/2010"

dateAdd( '01/01/2009' , 'now' , $futuro , 'Y-m-d H:i:s' ); //Já convertendo para o formato do MySQL
var_dump( $futuro ); //string(19) "2009-01-01 00:00:00"

dateAdd( '01/01/2009 11:55:00' , 'now' , $futuro , 'Y-m-d H:i:s' ); //Já convertendo para o formato do MySQL
var_dump( $futuro ); //string(19) "2009-01-01 11:55:00"

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.