Comparación de dos fechas

Bash:
Comparación de dos fechas

Cómo:

# Consigue la fecha actual en formato Año-Mes-Día
hoy=$(date +%F)

# Ejemplo de fecha para comparar, p.e. la fecha de entrega
fecha_entrega="2023-05-15"

# Compara las fechas
if [[ "$hoy" > "$fecha_entrega" ]]; then
  echo "La fecha de entrega ya pasó."
elif [[ "$hoy" < "$fecha_entrega" ]]; then
  echo "Aún hay tiempo antes de la fecha de entrega."
else
  echo "Hoy es la fecha de entrega."
fi

Salida posible:

Aún hay tiempo antes de la fecha de entrega.

Deep Dive

Bash usa GNU date para manipular y comparar fechas. Antes de Bash versión 4, comparar fechas era un dolor: tenías que convertir fechas a segundos desde la “época” (1970-01-01) y luego comparar los números. Ahora, con el operador [[, lo hacemos directo. Hay alternativas: usar date para manipular fechas o awk. Pero estas pueden ser más complicadas o lentas.

Ver También