lunes, 19 de diciembre de 2016

Buscar con PHP fecha en un rango o "between"



Perdí un par de horas en esto :(

Comparar fechas es distinto comparar cadenas de texto.
Es decir no se puede decir:

if ("2016-12-24" == $hoy){echo "La fecha es la misma";)

Se tienen, primero, que convertir las fechas a fechas Unix.
Para eso se usa la función: strtotime

Bueno, alguien amablemente ya hizo una función para eso, que es parecida a between en mysql, y aquí se las pego:

function check_in_range($start_date, $end_date, $date_from_user)
{
  // Convert to timestamp
  $start_ts = strtotime($start_date);
  $end_ts = strtotime($end_date);
  $user_ts = strtotime($date_from_user);

  // Check that user date is between start & end
  return (($user_ts >= $start_ts) && ($user_ts <= $end_ts));
}

Se usa así:

$encontro_la_fecha = check_in_range($fecha_llegada, $fecha_salida, $fechapasando);
if($encontro_la_fecha)
{
echo "Encontró la fecha en el rango buscado";
}
else
{
echo "NO encontró la fecha en el rango buscado";
}

No hay comentarios:

Publicar un comentario