在我的项目中,我使用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(澳大利亚东部标准时间)
解决方案是添加有关时区(之一)的信息:
添加缺少时区偏移量“ Z”的符号-dh.parse('2019-10-06T00:00:00.000Z')
添加GMT-dh.parse('2019-10-06 GMT')
添加+00:00-dh.parse('2019-10-06T00:00:00.000 + 00:00')
添加回答
举报
0/150
提交
取消