gpt4 book ai didi

javascript - 将 30 分钟添加到 Date 会导致它返回 30 分钟

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:10 37 4
gpt4 key购买 nike

我有一个等于 00:30 的 Javascript Date 对象,并且在执行时:

date.setMinutes(date.getMinutes() + 30);

使日期对象等于 00:00。

有人知道为什么会这样吗?

这里是使用代码的地方:

for (var i = openTime; i <= closeTime; i.setMinutes(i.getMinutes() + timeIncrement)) {
var time = i.getHours() + (i.getHours() == 0 ? '0' : '') + ':' + i.getMinutes() + (i.getMinutes() == 3 || i.getMinutes() == 0 ? '0' : '');

$(timeClientId).append($('<option />').val(time).text(time));
}

上面的脚本创建了一个可用时间列表,从上午 10:00 一直到第二天凌晨 02:00。

它运行良好,直到在多次成功迭代后到达午夜 00:00。

有人能帮忙吗?

谢谢!

答案/解决方案:

此问题是由于夏令时问题引起的,因此本周六时钟会拨快。出于某种奇怪的原因,在将 30 分钟添加到 12:30 时,它会使用 .setMinutes() 重置回 12:00。这使它陷入无限循环。解决方案是使用添加分钟 i.setTime(i.getTime() + timeIncrement * 60 * 1000)这解决了问题。

为您的所有回答干杯!

最佳答案

您只是在设置分钟。所以当然 30 分钟 + 时钟上的 30 分钟等于 60 分钟,即 0 分钟。

使用这个聪明的方法(它很聪明,因为它适用于所有翻转!):

function addMinutes(inDate, inMinutes)
{
var newdate = new Date();
newdate.setTime(inDate.getTime() + inMinutes * 60000);
return newdate;
}

var date = new Date();

alert(addMinutes(date,-30));​

关于javascript - 将 30 分钟添加到 Date 会导致它返回 30 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9820468/

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