【问题标题】:Forcing Date() constructor argument time zone interpretation强制 Date() 构造函数参数时区解释
【发布时间】:2018-08-16 11:04:23
【问题描述】:

我有一个用例,我使用来自用户的输入,即YYYY-MM-DD'T'TT:mm 的形式在 Javascript 中创建 Date 对象。问题是 Firefox 和 Chrome 将输入解释为本地时间(这是我想要的),而 Safari 将输入解释为 UTC 时间并将其转换为本地时间。如何强制 Safari 使用与其他两个相同的输入解释?

【问题讨论】:

  • 你不能,你不应该使用内置的解析器来解析字符串,见Why does Date.parse give incorrect results?你可以用大约4行代码为单一格式编写一个简单的解析器,或者使用一个图书馆。

标签: javascript date timezone


【解决方案1】:

最简单的方法是自己解析字符串(毕竟这很简单)并使用多参数Date 构造函数,它总是在本地时间工作。或者使用像Moment.js 这样的库来为你做这件事。我很想建议向字符串添加时区偏移量(+0400 等)(基于 Date 对象上的 getTimezoneOffset),但确定正确的时区偏移量需要您知道日期/时间(因为夏令时),所以......无论如何你都必须做这项工作。

【讨论】:

    猜你喜欢
    • 2022-12-07
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    相关资源
    最近更新 更多