如何在Elm中创建Date变量

Bat*_*u99 10 elm

我想在榆树的记录中硬编码日期.记录签名是

type alias Record = { .., startDate : Date, .. }
Run Code Online (Sandbox Code Playgroud)

在我的代码我正在做

record = { .., startDate = Date.fromString "2011/1/1", .. }
Run Code Online (Sandbox Code Playgroud)

问题是Record类型需要Date类型但Date.fromString签名是

String -> Result.Result String Date.Date
Run Code Online (Sandbox Code Playgroud)

如何创建要在记录类型上使用的日期?

rob*_*oby 13

你得到的是Result因为有可能将字符串解析为日期失败.您可以通过以下两种方式之一处理它.

忽略它

如果你只想说"我知道这个字符串将是有效的日期,我不担心我可能搞砸了"然后你可以提供一个默认日期

Date.fromString "2011/1/1" |> Result.withDefault (Date.fromTime 0)
Run Code Online (Sandbox Code Playgroud)

Date如果解析失败,这将为您留下一个但默认为unix时期.

用它

想想你会想,如果解析到发生什么是失败,并处理它使用的日期在那里.防爆.如果您将其显示为字符串,则可以显示日期或解析失败显示"TBA".

注意:您可能已经注意到Date.fromTime只返回a Date而不是Result(因为Int可以始终将其解析为a Date).如果您不介意将日期转换为unix时间戳,则可以对时间戳进行硬编码并使用它而无需处理Results