哪个JS日期时间选择器正确处理DST转换?

时间:2013-10-15 17:02:24

标签: javascript timezone datetimepicker dst

我无法弄清楚如何在我的应用程序的前端处理本地日期时间。

我想找到一个时区感知的JS日期时间选择器(使用moment.js)并正确处理DST过渡(即:如果在所选日期不存在,则不允许您选择00:00允许您在同一天发生的11:00 pms之间进行选择,方法是通过某种视觉提示显示DST转换的实例。

在时间选择器中处理DST转换是否有任何建议或最佳做法?我似乎找不到任何东西。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

好主意!但AFAIK并不存在任何类型的预制组件。我一直不得不自己创作,最终专门针对每个应用程序。我没有花时间编写可以在任何应用程序中使用的通用版本。

你当然可以将它作为moment.js插件创作。我们很高兴从momentjs.com网站链接它。如果您决定这样做,请告诉我。

对于时区感知日期/时间选择器的一般建议 - 我认为你得到了大部分内容,但回顾一下:

  • 禁止为目标时区选择无效的日期/时间。

    • 您可能会显示弹出窗口或验证错误,或者只是阻止选择以使其无法被选中。或者这些方法的组合。

  • 如果为目标时区选择了不明确的日期/时间,请询问用户他们所指的两个实例中的哪一个。

    • 以完整的ISO8601扩展格式存储,例如2013-11-03T01:00:00-05:00
    • 看看你是否能以某种方式直观地表达这种选择会很有趣。可能有两个选项显示偏移量(-04:00 / -05:00)和/或缩写(EDT / EST)。

  • 如果您还需要选择时区,请记住,IANA时区的完整列表可能令人生畏,有超过500个条目。

    • 您可能希望提供的下拉列表,一个用于国家/地区,然后一个用于按国家/地区过滤的时区。您可以使用zone.tab数据按国家/地区代码进行过滤。
    • 另一种方法是合并基于地图的时区选择器,例如this one
    • 您可以考虑使用jsTimeZoneDetect来猜测当地时区。
    • 当然,您可能只想单独提供目标时区,以便实施您的控制的开发人员可以决定如何连接时区选择。