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.
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
Sou iniciante no PHP e é a primeira vez que preciso comparar campos timestamp. Criei o código abaixo no mas não funcionou.
- <?php
- date_default_timezone_set('America/Sao_Paulo');
- $data_hora_inicio = date('d/m/Y H:i:s', strtotime('2017-01-01 00:59:00'));
- $data_hora_fim = date('d/m/Y H:i:s', strtotime('2020-12-31 07:53:00'));
- $data_hora_atual = date('d/m/Y H:i:s');
- echo 'Data atual: '. $data_hora_atual . '<br>';
- echo 'Data inicio: '. $data_hora_inicio . '<br>';
- echo 'Data fim: '. $data_hora_fim . '<br>';
- if (!(( $data_hora_atual >= $data_hora_inicio) && ($data_hora_atual <= $data_hora_fim )))
- {
- echo 'Dentro do periodo' . '<br>';
- }
- else
- {
- echo 'Fora do período' . '<br>';
- }
- ?>
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
Ola Geovani,
tira o !()
O seu codigo esta assim: Se NÂO(!) retornar TRUE executa o 1º bloco.
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
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.
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)
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.