Elm:
Twee datums vergelijken

Hoe:

Elm maakt datumvergelijkingen eenvoudig. Laten we zeggen dat je twee datums hebt. Hier is hoe je zou controleren welke als eerste komt:

import Time exposing (Posix)
import Date

compareDates : Posix -> Posix -> Order
compareDates datum1 datum2 =
    if datum1 < datum2 then
        LT  -- datum1 is eerder dan datum2
    else if datum1 > datum2 then
        GT  -- datum1 is later dan datum2
    else
        EQ  -- datums zijn hetzelfde

-- Voorbeeldgebruik:
let
    datum1 = Date.fromPosix <| Time.millisToPosix 1650931200000 -- Voeg je eerste datum toe in POSIX-tijd
    datum2 = Date.fromPosix <| Time.millisToPosix 1651017600000 -- En je tweede datum in POSIX-tijd
in
compareDates datum1 datum2
-- Uitvoer zal LT, GT, of EQ zijn

Je kunt ook het verschil in milliseconden berekenen:

tijdsverschil : Posix -> Posix -> Time.Duration
tijdsverschil datum1 datum2 =
    Time.millisToPosix datum1 - Time.millisToPosix datum2

-- Voorbeeldgebruik:
let
    datum1 = Date.fromPosix <| Time.millisToPosix 1650931200000
    datum2 = Date.fromPosix <| Time.millisToPosix 1651017600000
in
tijdsverschil datum1 datum2
-- Uitvoer: Duur in milliseconden

Diepe Duik

Elm slaat datums op als Posix, wat milliseconden sinds het Unix-tijdperk (1 januari 1970, UTC) voorstelt. Dit is een veelvoorkomende benadering, die zijn wortels deelt met Unix-tijd, en het vergemakkelijkt datummanipulatie en -opslag.

Hoewel Elm’s kernbibliotheek basisdatumbewerkingen biedt, bestaan er alternatieven zoals justinmimbs/date voor complexere operaties.

Bij het implementeren van datumvergelijkingen, onthoud dat tijdzones dingen kunnen compliceren. Elm’s Time module gaat uit van UTC, wat betekent dat je gespaard blijft van problemen met zomertijd, maar je moet mogelijk aanpassingen doen voor lokale tijdzones in je applicatie.

Zie Ook