gpt4 book ai didi

date - elm 0.19.1 中的当前年份为 4 位数字

转载 作者:行者123 更新时间:2023-12-02 16:02:41 26 4
gpt4 key购买 nike

如何使用 ELM 0.19.1 执行一个函数来获取 4 位数字的当前年份?我读过一些内容,但 0.19.1 没有任何效果。

签名:

getCurrentYear : Int

执行:

getCurrentYear => 2020

编辑:

也许正在执行new Date().getFullYear() javascript代码?

最佳答案

最简单的方法是通过 flags 传递年份。当您启动应用程序时,因为当前年份在应用程序运行过程中不太可能改变。在这种情况下,您可以使用您建议的 JavaScript 片段 ( ellie example ):

    Elm.Main.init({ 
node: document.querySelector('main'),
flags: {
year: new Date().getFullYear(),
}
});
module Main exposing (main)

import Browser
import Html exposing (Html, p, text)


type alias Flags =
{ year : Int }


main : Program Flags Model Msg
main =
Browser.element
{ init = \flags -> ( Model flags.year, Cmd.none )
, view = view
, update = update
, subscriptions = \_ -> Sub.none
}


type alias Model =
{ year : Int }


type Msg
= NoOp


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


view : Model -> Html Msg
view model =
p [] [ text "The year is ", text (String.fromInt model.year) ]

或者,您可以使用 Time.now请求当前时间,如 Robin Zigmond's answer然而,这表明它指向 Elm 0.18 文档(对于 elm-lang/core 而不是 elm/time )。对于 0.19,您需要 Time.Posix和一个Time.Zone以便调用Time.toYear 。可以链Time.now (生成 Posix 值的 Task)和 Time.here (一项生成具有当前时区偏移的 ZoneTask),以在一个 Cmd 中检索这些值。这是一个示例 ( also on ellie )

module Main exposing (main)

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


type alias Flags =
{ year : Int }


main : Program () Model Msg
main =
Browser.element
{ init = \() -> ( Model 0, whatYearIsIt |> Task.perform GotYear )
, view = view
, update = update
, subscriptions = \_ -> Sub.none
}


whatYearIsIt : Task x Int
whatYearIsIt =
Task.map2 Time.toYear Time.here Time.now


type alias Model =
{ year : Int }


type Msg
= GotYear Int


update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
GotYear year ->
( { model | year = year }, Cmd.none )


view : Model -> Html Msg
view model =
p [] [ text "The year is ", text (String.fromInt model.year) ]

关于date - elm 0.19.1 中的当前年份为 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61259718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com