为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容森 2021-04-16 18:10:59
在我的项目中,我使用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
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

我面临着同样的问题:

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')

//img1.sycdn.imooc.com//6080ceaf000157a109540275.jpg

查看完整回答
反对 回复 2021-04-22
  • 2 回答
  • 0 关注
  • 549 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信