如何在 Elm 中创建日期变量

How to create a Date variable in Elm

我想在 elm 的记录中硬编码日期。记录签名是

type alias Record = { .., startDate : Date, .. }

我正在做的代码

record = { .., startDate = Date.fromString "2011/1/1", .. }

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

String -> Result.Result String Date.Date

如何创建 Date 以在 Record 类型上使用?

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

忽略它

如果你只想说 "I know this string will be valid date and I'm not worried that I may have messed it up" 那么你可以只提供一个默认日期

Date.fromString "2011/1/1" |> Result.withDefault (Date.fromTime 0)

这会给你留下 Date,但如果解析失败,将默认为 unix 纪元。

使用它

想想如果解析 失败并在使用日期的地方处理它会发生什么。前任。如果您将其显示为字符串,则可以显示日期,或者如果解析失败则显示 "TBA".

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