Respuestas:
Desde PHP> = 5.2.2 puede usar la DateTimeclase 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
}
La cadena que se pasa al constructor DateTime se analiza de acuerdo con estas reglas .
Tenga en cuenta que también es posible utilizar las funciones timey strtotime. Ver respuesta original .
new DateTime('2010-05-15')es solo un ejemplo, podría ser cualquier objeto DateTime que haya inicializado anteriormente.
$objectes un objeto DateTime, lo usé if (new DateTime() > $object) {}y funciona mal. Pero if (time() > $bject->getTimeStamp()) {}funciona correctamente. @Salman A
También existe la clase DateTime que implementa una función para operadores de comparación.
// $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 la función de PHP strtotimepara convertir su fecha / hora establecida en una marca de tiempo: http://php.net/manual/en/function.strtotime.php
Si strtotimeno puede manejar su formato de fecha / hora correctamente ("4:00 PM" probablemente funcionará pero no "a las 4:00 PM"), deberá usar funciones de cadena, por ejemplo, substrpara analizar / corregir su formato y recuperar su marca de tiempo a través de otra función, por ejemplo mktime.
Luego compare la marca de tiempo resultante con la fecha / hora actual ( if ($calulated_timestamp > time()) { /* date in the future */ }) para ver si la fecha / hora establecida es en el pasado o en el futuro.
Sugiero leer el PHP-doc sobre las funciones de fecha / hora y volver aquí con parte de su código fuente una vez que se quede atascado.
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;
}
$myDateserá igual string (0) "".