segunda-feira, 16 de junho de 2014

PHP diferença entre duas datas em anos, meses, dias, horas, minutos, segundos


Marcar quanto tempo falta para começar um evento:

date_default_timezone_set('America/Sao_Paulo');
$data_hoje = date("Y-m-d H:i:s");
$data_evento = strtotime("2014-09-03 9:00:00");
$start_date = new DateTime("$data_hoje");
$since_start = $start_date->diff(new DateTime("$data_evento"));
echo $since_start->y.' anos<br>';
echo $since_start->m.' meses<br>';
echo $since_start->days.' dias<br>';
echo $since_start->h.' horas<br>';
echo $since_start->i.' minutos<br>';
echo $since_start->s.' segundos<br>';

terça-feira, 3 de junho de 2014

MySQL - update when case

Exemplo prático de When Case no UPDATE, quando a data de hoje é menor que a data do final da assinatura (pagamento antecipado) o programa assume a data do final do pagamento + um ano:

UPDATE assinaturas set
inicio_assinatura= IF(inicio_assinatura='0000-00-00', CURDATE(), inicio_assinatura),
fim_assinatura=
   CASE
    WHEN CURDATE( ) <  `fim_assinatura` THEN DATE_ADD( fim_assinatura, INTERVAL 365 DAY )
    ELSE DATE_ADD( CURDATE( ) , INTERVAL 365 DAY )
   END
where id_da_empresa='$id_empresa' and id_do_contato='$id_contato'