Obteniendo la fecha actual

Elm:
Obteniendo la fecha actual

Cómo hacerlo:

module Main exposing (main)

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

type alias Model = Posix

type Msg = UpdateTime Posix

-- Iniciar la aplicación y suscribirse a cambios en el tiempo
main : Program () Model Msg
main =
    Browser.element
        { init = init
        , update = update
        , view = view
        , subscriptions = subscriptions
        }

-- Inicializar el modelo con un tiempo en cero
init : () -> (Model, Cmd Msg)
init _ =
    (Time.millisToPosix 0, Task.perform UpdateTime Time.now)

-- Actualizar el modelo con el nuevo tiempo
update : Msg -> Model -> (Model, Cmd Msg)
update (UpdateTime newTime) _ =
    (newTime, Cmd.none)

-- Mostrar la fecha actual
view : Model -> Html Msg
view currentTime =
    text (String.fromInt (Time.posixToMillis currentTime))

-- Suscribirse a Time.every para recibir ticks del reloj
subscriptions : Model -> Sub Msg
subscriptions _ =
    Time.every 1000 (UpdateTime)

Sample output:

1616265392390

Profundización

Históricamente, obtener la fecha en programación ha estado vinculado al sistema operativo del host. En Elm, se usa el módulo Time para interactuar con fechas y horas. Alternativas incluyen utilizar bibliotecas de terceros para funcionalidades más complejas. Elm trata la hora como Posix, que representa milisegundos desde la época Unix (1 de enero de 1970). Se prefiere usar Cmd Msg para mantener las actualizaciones dentro del arquitectura de Elm.

Ver También