Bash:
Jämföra två datum

Hur man gör:

# Jämför två datum
datum1="2023-03-17"
datum2="2023-04-15"

# Omvandla till sekunder sedan epoch (1970-01-01 00:00:00 UTC)
sek1=$(date -d "$datum1" +%s)
sek2=$(date -d "$datum2" +%s)

# Jämför sekunderna
if [ "$sek1" -eq "$sek2" ]; then
  echo "Dagen är den samma!"
elif [ "$sek1" -lt "$sek2" ]; then
  echo "$datum1 är tidigare än $datum2"
else
  echo "$datum1 är senare än $datum2"
fi

Exempeloutput:

2023-03-17 är tidigare än 2023-04-15

Djupdykning:

Att jämföra datum är viktigt, speciellt före internets genomslag. Då sorterade man pappersdokument för hand. I skriptvärlden kan du använda date-kommandot för mycket av tunglyftningen. Det finns andra verktyg som awk eller perl, men date är ofta tillräckligt kraftfullt och finns standard i de flesta Unix-system, inklusive macOS.

Implementationen beror på formatet. date-kommandot är flexibelt men kräver korrekt format. Om du har olika datumformat eller använder andra tidzoner blir det svårare – då kan du behöva andra kommandon eller skripta det själv.

Se även: