Respostas:
Desde PHP> = 5.2.2, você pode usar a DateTime
classe como tal:
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00
# in other words, 2010-05-15 16:00:00 has passed
}
A string passada para o construtor DateTime é analisada de acordo com essas regras .
Observe que também é possível usar as funções time
e strtotime
. Veja a resposta original .
new DateTime('2010-05-15')
é apenas um exemplo, pode ser qualquer objeto DateTime que você inicializou anteriormente.
$object
seja um objeto DateTime, usei if (new DateTime() > $object) {}
e funciona incorretamente. Mas if (time() > $bject->getTimeStamp()) {}
funciona corretamente. @Salman A
Há também a classe DateTime que implementa uma função para operadores de comparação.
// $now = new DateTime();
$dtA = new DateTime('05/14/2010 3:00PM');
$dtB = new DateTime('05/14/2010 4:00PM');
if ( $dtA > $dtB ) {
echo 'dtA > dtB';
}
else {
echo 'dtA <= dtB';
}
Verifique a strtotime
função do PHP para converter sua data / hora definida para um carimbo de data / hora: http://php.net/manual/en/function.strtotime.php
Se strtotime
não conseguir lidar com o formato de data / hora corretamente ("16:00" provavelmente funcionará, mas não "às 16:00"), você precisará usar funções de string, por exemplo, substr
para analisar / corrigir seu formato e recuperar seu carimbo de data / hora por meio outra função, por exemplo mktime
.
Em seguida, compare o carimbo de data / hora resultante com a data / hora atual ( if ($calulated_timestamp > time()) { /* date in the future */ }
) para ver se a data / hora definida está no passado ou no futuro.
Eu sugiro ler o documento PHP sobre funções de data / hora e voltar aqui com um pouco de seu código-fonte quando você ficar preso.
date_default_timezone_set('Asia/Kolkata');
$curDateTime = date("Y-m-d H:i:s");
$myDate = date("Y-m-d H:i:s", strtotime("2018-06-26 16:15:33"));
if($myDate < $curDateTime){
echo "active";exit;
}else{
echo "inactive";exit;
}
$myDate
será igual a string (0) ""
.