Elm:
Pobieranie aktualnej daty
Jak to zrobić:
Elm obsługuje daty za pomocą modułu Time
. Otrzymasz bieżący czas jako znacznik czasu POSIX, a następnie przekonwertujesz go na datę.
import Browser
import Task
import Time
type Msg = GetCurrentTime Time.Posix
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
GetCurrentTime posixTime ->
let
-- Konwersja czasu POSIX na rekord daty
date = Time.toDate posixTime
in
-- Tutaj odpowiednio aktualizuj swój model
({ model | date = date }, Cmd.none)
-- Aby zainicjować uzyskanie bieżącego czasu
getCurrentTime : Cmd Msg
getCurrentTime =
Task.perform GetCurrentTime Time.now
-- Przykładowe wyjście:
-- date { year = 2023, month = Mar, day = 26 }
Dogłębna analiza
W starszych językach webowych, pobranie daty to kod jednolinijkowy. Elm jest inny. Czyni skutki uboczne takie jak uzyskiwanie bieżącego czasu wyraźnymi dzięki Architekturze Elma. To zachęca do czystości i utrzymywalności kodu.
Alternatywy obejmują korzystanie z pakietów stron trzecich lub obsługę dat w kodzie serwera i przekazywanie ich do Elma przez flagi lub porty.
Pod względem implementacji, Time.now
w Elmie pobiera czas jako znacznik czasu POSIX (milisekundy od epoki Unix). Jest to niezależne od strefy czasowej, a formatować możesz go według potrzeb przy użyciu funkcji z modułu Time
.