gpt4 book ai didi

javascript - 考虑时区更改通过 date-fns 添加一天

转载 作者:行者123 更新时间:2023-12-02 23:52:54 27 4
gpt4 key购买 nike

在我的项目中,我使用 date-fns 进行日期操作。需要在某个范围内迭代天数。为此,我使用以下代码:

  for (
// from and to are always start of some day, from <= to
let date = from;
isBefore(date, to) || isEqual(date, to);
date = addDays(date, 1)
) {
// Some operations with date
}

我期望 date 始终是某一天的开始,但如果时区发生变化(冬季时间 -> 夏季时间),日期会比预期少 1 小时。这是一个例子:

const from = new Date('2019-03-31T00:00:00.000Z')
const fromPlusDay = dateFns.addDays(from, 1)

// I'm getting "2019-03-31T23:00:00.000Z"
// instead of "2019-04-01T00:00:00.000Z"
fromPlusDay.toISOString()

顺便说一句,我的时区是+2,转入夏令时后变成了+3

最佳答案

我遇到了同样的问题:

2019 年 10 月 6 日澳大利亚开始实行夏令时。

dh.parse('2019-10-06')

返回:2019 年 10 月 5 日星期六 23:00:00 GMT+1000(澳大利亚东部标准时间)

解决方案是添加有关时区的信息(其中之一):

  1. 添加缺少时区偏移“Z”的符号 -- dh.parse('2019-10-06T00:00:00.000Z' )
  2. 添加 GMT -- dh.parse('2019-10-06 GMT' )
  3. 添加 +00:00 -- dh.parse('2019-10-06T00:00:00.000+00:00' )

examples]([![https://i.imgur.com/fvLWQQO.png ] 1 )

关于javascript - 考虑时区更改通过 date-fns 添加一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55562974/

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