gpt4 book ai didi

javascript - 如何将小时添加到格式为 HH :MM:SS in 24 hour format 的字符串

转载 作者:行者123 更新时间:2023-11-30 19:52:23 25 4
gpt4 key购买 nike

我正在尝试以 24 小时格式添加小时数,例如“23:59:59”。例如,我需要添加 2.5 小时,以便时间滚动到第二天并显示为“02:30:00”。

到目前为止,我所尝试的方法一直有效,直到达到“23:59:59”。如果超过“23:59:59”,我需要显示第二天的时间。到目前为止,这是我尝试过的:

var time = $('#starttime').val().split(':');
var d = new Date();
d.setHours(+time[0]);
d.setMinutes(time[1]);
d.setSeconds(time[2]);
var time2 = $('#endtime').val().split(':');
var endtimeval = new Date();
endtimeval.setHours(+time2[0]);
endtimeval.setMinutes(time2[1]);
endtimeval.setSeconds(time2[2]);
var str = d.getHours() + parseInt($('#noofhours').val()) + ":" + time2[1] + ":" + time2[2];
$('#endtime').val(str);

最佳答案

在这里使用日期对象可能是不必要的,模运算应该足够了。

const pad = n => {
const s = String(n);
return s.length > 1 ? s : '0' + s;
};

const addHours = (timeVal, numHours) => {
const [hr, min, sec] = timeVal.split(':').map(Number);
const [,lefty, righty] = String(numHours).match(/(\d+)(?:(\.\d+))?/).map(Number);
const hours = (hr + lefty) % 24;
const minutes = righty === undefined ?
min :
((righty * 60 | 0) + min) % 60;

return [hours, minutes, sec].map(pad).join(':');
};

addHours('23:59:59', 2.5) // "01:29:59"

请注意,由于不涉及日期,因此无法准确处理例如夏令时。另请注意,此示例中的分钟数是向下舍入的,如果需要,您可以重复几秒钟的逻辑。

请注意,出于相同的原因,您使用 Date 对象的方法将对相同的输入给出不同的答案,这取决于逻辑运行的时间/地点。

关于javascript - 如何将小时添加到格式为 HH :MM:SS in 24 hour format 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54348768/

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