Elixir:
Jämföra två datum

How to:

I Elixir använder vi DateTime modulen för att hantera och jämföra datum. Här är ett snabbt exempel:

date1 = ~N[2023-04-02 12:00:00]
date2 = ~N[2023-04-03 12:00:00]

comparison = DateTime.compare(date1, date2)

case comparison do
  :lt -> "date1 är tidigare än date2"
  :gt -> "date1 är senare än date2"
  :eq -> "date1 är samma tid som date2"
end

Kör kodstycket ovan, och du får ut:

"date1 är tidigare än date2"

Deep Dive

Att jämföra datum i Elixir har sina rötter i Erlangs inbyggda bibliotek för tidsberäkning. Skillnader i tidszoner och skottsekunder kan göra jämförelser knepiga, men DateTime-modulen hanterar dessa väl. Andra alternativ för datumjämförelser inkluderar användning av Date och NaiveDateTime beroende på vilken precision och vilka funktioner som behövs. Implementeringsdetaljer som DateTime.compare/2 anropar faktiskt en funktion i Erlang-koden, vilket visar Elixirs interoperabilitet med Erlang.

See Also