Nykyisen päivämäärän hankkiminen

Elm:
Nykyisen päivämäärän hankkiminen

How to: (“Kuinka tehdään:”)

Elmissä työskennellessä voit käyttää Time moduulia nykyisen päivämäärän saamiseksi. Tässä pikainen esimerkki:

import Browser
import Html exposing (Html, text)
import Task
import Time exposing (Posix)

main =
    Browser.element
    { init = init
    , update = update
    , subscriptions = subscriptions
    , view = view
    }

type alias Model = Posix

init : () -> (Model, Cmd Msg)
init _ =
    (Time.millisToPosix 0, Task.perform NewTime Time.now)

type Msg
    = NewTime Posix

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        NewTime posix ->
            (posix, Cmd.none)

subscriptions : Model -> Sub Msg
subscriptions _ =
    Sub.none

view : Model -> Html Msg
view model =
    text (String.fromInt (Time.toMillis model))

type alias Flags = ()

Ajamalla yllä olevan koodin saat tulostettua selaimen konsoliin nykyisen ajan millisekunteina Unix Epochista (1. tammikuuta 1970) lähtien.

Deep Dive (“Syväsukellus”):

Elmin Time moduuli perustuu JavaScriptin Date-objektiin, mutta tarjoaa turvallisemman ja funktionaalisemman käyttöliittymän. Historiallisesti päivämäärät ovat olleet monelle ohjelmointikielle haasteellisia muun muassa aikavyöhykkeiden ja karkaussekuntien vuoksi.

Unix Epoch, eli ajanlaskun nollakohta, on valittu sen yksinkertaisuuden ja laajalti tuetun standardin takia. Elm käyttää Posix-aikaa, joka on millisekuntien muodossa oleva kokonaisluku.

Vaikka Elm suoraviivaistaa päivämäärähallintaa, ole tietoinen, että serveri- ja asiakaskoneiden välinen ajanhallinta voi aiheuttaa ongelmia. Aikavyöhykkeet ja kesäaika voivat sekoittaa pakkaa, joten niitä käsitteleviä kirjastoja (kuten elm/time) saattaa tarvita kompleksisemmissa sovelluksissa.

See Also (“Katso myös”):