如何确定用户在Elm的当地时区的当前日期和时间?

时间:2017-01-22 17:48:44

标签: elm

我希望在elm中获得一个表示用户本地日期和时间的日期。我查看了核心Date module以及elm-time包。

elm-time包有ZonedDateTime,但必须提供TimeZone值,因此必须提前知道时区。

这个问题的核心是可靠地确定用户的时区。我提出的最好的解决方案是将用户的时区偏移量via javascript作为应用程序标记传递,并且相应地修改UTC日期,这是太天真地被认为不可接受的。

2 个答案:

答案 0 :(得分:0)

似乎Date.now任务将在结果Date中返回时区信息。但是,我没有找到任何实际允许访问的Date API函数。

但是,一旦有了Date,我就可以使用getTimezoneOffset包中的rluiten/elm-date-extra函数来计算原始分钟的偏移量。您可以尝试从该偏移量推导出时区。

或者,您可以toString Date返回并从中解析出来。它以这样的字符串结尾:<Tue Jul 17 2018 23:45:19 GMT-0700 (PDT)>

答案 1 :(得分:0)

Intl API提供了a way to get the user's current timezone:

Intl.DateTimeFormat().resolvedOptions().timeZone

它返回IANA字符串,例如"Australia/Sydney"undefined

根据kangax's compatibility table.

,现代浏览器对浏览器的支持似乎很强
相关问题