Elm:
日付を比較する
How to:
Elmで日付を比較する方法を見てみよう。ちゃちゃっとコード書いて、実際に動かす所までやってみよう。
import Time exposing (Posix)
import Task
import Date exposing (Date)
-- 日付を比較する関数
compareDates : Date -> Date -> Order
compareDates date1 date2 =
Date.compare date1 date2
-- 実用例を見てみよう
example : Task.Task x String
example =
Task.map (\o ->
case o of
LT ->
"第一の日付の方が古いよ"
EQ ->
"二つの日付は同じだね"
GT ->
"第一の日付の方が新しいね"
)
(Task.map2 compareDates (Date.fromPosix (Posix 0)) (Date.fromPosix (Posix 86400000)))
サンプル出力の ``` “第一の日付の方が新しいね”
## Deep Dive
Elmの日付比較は、JavaScriptより簡潔でエラーが少ない。`Date` モジュールはElmの初期バージョンからあるが、今ではより安全で使いやすくなっている。他の方法としては、日付をUnixタイムスタンプ(`Posix`)に変換して比較することもできる。実装の詳細については、Elmの内部で`compare`関数がどう動いてるかを理解することが大事だ。それぞれの日付を内部的な数値として見て、その数値を比較するんだ。
## See Also
- [Elm Date Documentation](https://package.elm-lang.org/packages/justinmimbs/date/latest/): `Date` モジュールの公式ドキュメンテーション
- [Elm Time Documentation](https://package.elm-lang.org/packages/elm/time/latest/): `Time` モジュールに関する詳細
- [Elm Discuss](https://discourse.elm-lang.org/): Elmコミュニティでの議論ができるフォーラム