gpt4 book ai didi

javascript - 从数值创建日期时忽略时区

转载 作者:行者123 更新时间:2023-12-01 01:52:13 24 4
gpt4 key购买 nike

简单的例子:

new Date(2018,0,1,0,0,0,0)

产生 2017-12-31T23:00:00.000Z 我所在的位置 (GMT+1)。我正在从以下格式的字符串值创建日期:

YYYYMMDD HHmm
20170326 0135

这些来自 ftp://ftp.ncdc.noaa.gov/pub/data/uscrn/products/subhourly01/2017/ 的天气数据。现在我尝试通过在小时数上加一来解决超时问题,例如: new Date(2018,0,1,0+1,0,0,0)->2018- 01-01T00:00:00.000Z

但是,如果您想将日期设置为接近午夜,则此操作会失败,因为例如,将 1 与 23:30 添加会创建 24:30,这是无效值。结果将是当天的午夜,而不是第二天的 1 点:

new Date(2018,0,1,23+1,30,0,0)
2018-01-01T23:30:00.000Z

此外,由于某种原因,Date 从某些时间中减去 2 小时:

new Date(2017, 2, 26, 3, 0, 0, 0);
2017-03-26T01:00:00.000Z

所以这个问题是 - 如何创建日期忽略时区,以便我可以从本地日期时间字符串创建它。

最佳答案

您可以使用Date.UTC返回 UTC 时间戳的函数:

new Date(Date.UTC(2018, 0, 1, 23, 30, 0, 0))

顺便说一句,24:30 对于 JS 日期来说是完全有效的。它将正确地溢出到第二天。

关于javascript - 从数值创建日期时忽略时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51382866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com