gpt4 book ai didi

javascript - 巴西利亚时区计算错误

转载 作者:行者123 更新时间:2023-11-30 06:38:18 25 4
gpt4 key购买 nike

function(startDate, lastDate){


var midDate = newDate(startDate.getFullYear(),startDate.getMonth(),Math.ceil((lastDate.getDate() + startDate.getDate()) / 2));

var startDateOffset = startDate.getTimezoneOffset();
var lastDateOffset = lastDate.getTimezoneOffset();
var midDateOffset = midDate.getTimezoneOffset();

var finalDate = new Date();
if(startDateOffset == midDateOffset){

if((lastDate.getDate() - midDate.getDate()) > 1){
alert("loop");
finalDate = this.getDaylightChangeDate(midDate, lastDate);
}
}

我的开始日期为 10 月 20 日,结束日期为 22 日,中间日期再次为 10 月 20 日。这仅发生在 Brasilia 位置, startDateOffset 和 midDateOffset 也是 180 作为输出.. 这将代码放入无限循环中,因为中间日期始终等于开始日期。请在javascript中建议一些其他方法来计算中间日期

最佳答案

您的代码没有任何问题。 2012-10-20T00:00 和 2012-10-21T23:00 之间的中间日期 2012-10-20T23:30。当然,如果输入日期相隔不超过 2 天,您的代码就不能期望日期会有所不同。如果您在与开始和结束日期相同的日期通过,甚至会发生什么?

如果这些日期记录在不同的时区,您应该始终使用 UTC 来计算差异。

关于javascript - 巴西利亚时区计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155884/

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