Elm:
So sánh hai ngày
Cách làm:
Elm làm cho việc so sánh ngày trở nên đơn giản. Giả sử bạn có hai ngày. Đây là cách bạn kiểm tra xem ngày nào xảy ra trước:
import Time exposing (Posix)
import Date
compareDates : Posix -> Posix -> Order
compareDates ngay1 ngay2 =
if ngay1 < ngay2 then
LT -- ngay1 diễn ra trước ngay2
else if ngay1 > ngay2 then
GT -- ngay1 diễn ra sau ngay2
else
EQ -- hai ngày giống nhau
-- Ví dụ Sử dụng:
let
ngay1 = Date.fromPosix <| Time.millisToPosix 1650931200000 -- Thêm ngày đầu tiên của bạn bằng thời gian POSIX
ngay2 = Date.fromPosix <| Time.millisToPosix 1651017600000 -- Và ngày thứ hai của bạn bằng thời gian POSIX
in
compareDates ngay1 ngay2
-- Kết quả sẽ là một trong các LT, GT, hoặc EQ
Bạn cũng có thể tính toán sự khác biệt bằng milliseconds:
timeDifference : Posix -> Posix -> Time.Duration
timeDifference ngay1 ngay2 =
Time.millisToPosix ngay1 - Time.millisToPosix ngay2
-- Ví dụ Sử dụng:
let
ngay1 = Date.fromPosix <| Time.millisToPosix 1650931200000
ngay2 = Date.fromPosix <| Time.millisToPosix 1651017600000
in
timeDifference ngay1 ngay2
-- Kết quả: Thời lượng bằng milliseconds
Sâu hơn
Elm lưu trữ ngày tháng dưới dạng Posix
, biểu diễn số milliseconds kể từ thời điểm Unix epoch (1 tháng 1 năm 1970, UTC). Đây là cách tiếp cận phổ biến, chia sẻ nguồn gốc với Thời gian Unix, và nó làm cho việc thao tác và lưu trữ ngày tháng trở nên dễ dàng hơn.
Trong khi thư viện cốt lõi của Elm cung cấp cách xử lý ngày tháng cơ bản, một số lựa chọn khác như justinmimbs/date
tồn tại cho các thao tác phức tạp hơn.
Khi thực hiện so sánh ngày tháng, hãy nhớ rằng múi giờ có thể làm phức tạp mọi thứ. Mô đun Time
của Elm giả định là UTC, có nghĩa là bạn không phải đau đầu với việc tiết kiệm ánh sáng ban ngày, nhưng bạn có thể cần phải điều chỉnh cho múi giờ địa phương trong ứng dụng của mình.
Xem Thêm
- Mô đun Thời gian Elm: https://package.elm-lang.org/packages/elm/time/latest/
- Gói Ngày của Justin Mimbs cho Elm: https://package.elm-lang.org/packages/justinmimbs/date/latest/
- Thời gian Unix: https://en.wikipedia.org/wiki/Unix_time