現在の日付の取得

Elm:
現在の日付の取得

どのようにして:

ElmはTimeモジュールで日付を扱います。現在の時刻をPOSIXタイムスタンプとして取得し、それを日付に変換します。

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
                -- POSIX時刻を日付レコードに変換
                date = Time.toDate posixTime
            in
            -- ここでモデルを適切に更新
            ({ model | date = date }, Cmd.none)

-- 現在の時刻を取得するための初期化
getCurrentTime : Cmd Msg
getCurrentTime =
    Task.perform GetCurrentTime Time.now

-- 例出力:
-- date { year = 2023, month = Mar, day = 26 }

詳細

古いWeb言語では、日付を取得するのは1行のコードです。Elmは異なります。Elmアーキテクチャを通じて、現在の時刻のような副作用を明示的にすることです。これにより、コードの純粋性と保守性が促進されます。

代替案には、サードパーティのパッケージを使用するか、日付をサーバーコードで扱い、フラグやポートを通じてElmに渡す方法があります。

実装としては、ElmのTime.nowはPOSIXタイムスタンプ(Unixエポック以来のミリ秒)として時刻を取得します。これはタイムゾーンに依存せず、必要に応じてTimeモジュールの関数を使用してフォーマットできます。

参照