Saltar al contenido

Comparación de fecha y hora PHP / Mysql?

Solución:

Si sus fechas ya están en MySQL, querrá hacer la comparación en la consulta porque:

  1. MySQL tiene los tipos DATE adecuados.
  2. MySQL tiene índices para comparar.
  3. MySQL realiza comparaciones mucho más rápido que PHP.
  4. Si filtra sus datos en la consulta, entonces se pierde menos tiempo o no se pierde tiempo en transferir datos superfluos a la aplicación.

A continuación se muestra la forma más eficiente. Si hay un índice en el date columna que se utilizará.

SELECT *
FROM table
WHERE date > DATE_SUB(NOW(), INTERVAL 15 MINUTE)

Documentos: DATE_SUB()

Si necesita hacerlo en PHP:

$now = time();
$target = strtotime($date_from_db);
$diff = $now - $target;
if ( $diff > 900 ) {
  // something
}

o, más sucintamente:

if( time() - strtotime($date_from_db) > 900 ) {
  // something
}

Tiene una solución para MYSQL en otras respuestas, una buena solución para PHP es: –

$now = new DateTime();
$target = new DateTime(getTimeStringFromDB());
$minutes = ($target->getTimestamp() - $now->getTimestamp())/60;
if($minutes < 15){
    // Do some stuff
} else {
    //Do some other stuff
}

la solución combinada PHP / MySQL más eficiente es:

$date = date('Y-m-d H:i:s', strtotime('-15 minutes'));
$data = $pdo->query("SELECT date_field > '$date' as expired from table")->fetchAll(PDO::FETCH_COLUMN);
foreach($data as $expired) {
    if (!$expired) {
        // Still Valid
    }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *