Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Comparação com variáveis timestamp Olá amigos! Sou iniciante no PHP e é a primeira vez que preciso comparar campos timestamp. Criei o código abaixo no mas não funcionou. ...
GO
Comparação com variáveis timestamp  
Olá amigos!
Sou iniciante no PHP e é a primeira vez que preciso comparar campos timestamp. Criei o código abaixo no mas não funcionou.

  1. <?php
  2.     date_default_timezone_set('America/Sao_Paulo');
  3.     $data_hora_inicio date('d/m/Y H:i:s'strtotime('2017-01-01 00:59:00'));
  4.     $data_hora_fim    date('d/m/Y H:i:s'strtotime('2020-12-31 07:53:00'));
  5.     $data_hora_atual  date('d/m/Y H:i:s');
  6.     echo 'Data atual: '.  $data_hora_atual '<br>';
  7.     echo 'Data inicio: '.  $data_hora_inicio '<br>';
  8.     echo 'Data fim: '.  $data_hora_fim '<br>';
  9.     
  10.     if (!(( $data_hora_atual >= $data_hora_inicio)  &&  ($data_hora_atual <= $data_hora_fim )))
  11.     {
  12.         echo 'Dentro do periodo' '<br>';
  13.     }
  14.     else
  15.     {
  16.         echo 'Fora do período' '<br>';    
  17.     }    
  18.                 
  19. ?>


Esse código imprimiu esse resultado na tela:

Data atual: 11/07/2018 00:31:28
Data inicio: 01/01/2017 00:59:00
Data fim: 31/12/2020 07:53:00
Fora do período

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (5)


LA

Ola Geovani,
tira o !()
O seu codigo esta assim: Se NÂO(!) retornar TRUE executa o 1º bloco.

  1. <?php
  2. $data_hora_inicio date('d/m/Y H:i:s'strtotime('2017-01-01 00:59:00'));
  3.         $data_hora_fim date('d/m/Y H:i:s'strtotime('2020-12-31 07:53:00'));
  4.         $data_hora_atual date('d/m/Y H:i:s');
  5.         if (($data_hora_atual >= $data_hora_inicio) && ($data_hora_atual <= $data_hora_fim)) {
  6.             echo 'Dentro do periodo' '<hr>';
  7.         } else {
  8.             echo 'Fora do período' '<hr>';
  9.         }
  10.         echo $data_hora_inicio '<br>';
  11.         echo '<b>' $data_hora_atual '</b><br>';
  12.         echo $data_hora_fim '<br>';
  13. ?>
NR

A função date retorna uma string, então você não está comparando timestamp e sim strings. Por isso que comparações de data em formato brasileiro não dão certo:
01/12/18 < 03/01/18, pois 01 é menor que 03.

Faça a comparação usando o formato americano(ano/mes/dia) ou compare diretamente o timestamp
GO

Olá Nataniel!
Então , para comparar o timestamp eu devo usar qual função de conversão? Eu usei algumas mas não consegui. :/ Acho que vou acabar comparando no formato americano mesmo.
MC

Cuidado com o formato completo do timestamp, pois ele tem minutos e segundos, se precisar comparar, pegue somente a data, para isso vc pode usar a função explode(' ',''), para extrair somente a data antes do espaço (em formato americano)
GO

Olá Miuller!
Eu precisa comparar também com a hora. A intenção é saber se eu tenho que irar uma promoção do ar ela pode durar dias ou minutos. E tudo deve ser agendado.