Risposte:
Poiché PHP> = 5.2.2 puoi usare la DateTime
classe come tale:
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 stringa passata al costruttore DateTime viene analizzata in base a queste regole .
Notare che è anche possibile utilizzare time
e strtotime
functions. Vedi risposta originale .
new DateTime('2010-05-15')
È solo un esempio, potrebbe essere qualsiasi oggetto DateTime inizializzato in precedenza.
$object
sia un oggetto DateTime, l'ho usato if (new DateTime() > $object) {}
e funziona in modo errato. Ma if (time() > $bject->getTimeStamp()) {}
funziona correttamente. @Salman A
C'è anche la classe DateTime che implementa una funzione per gli operatori di confronto.
// $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';
}
Controlla la funzione di PHP strtotime
per convertire la data / ora impostata in un timestamp: http://php.net/manual/en/function.strtotime.php
Se strtotime
non riesci a gestire correttamente il tuo formato di data / ora ("4:00 PM" probabilmente funzionerà ma non "alle 16:00"), dovrai usare le funzioni stringa, ad esempio substr
per analizzare / correggere il tuo formato e recuperare il tuo timestamp tramite un'altra funzione, ad esmktime
.
Quindi confronta il timestamp risultante con la data / ora corrente (if ($calulated_timestamp > time()) { /* date in the future */ }
) per vedere se la data / ora impostata è nel passato o nel futuro.
Suggerisco di leggere il documento PHP sulle funzioni data / ora e tornare qui con un po 'del tuo codice sorgente una volta che ti blocchi.
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
sarà uguale a string (0) ""
.