Javascript 使用持续时间为24小时的格式的小时列表填充数组
我有两个输入来选择一个小时范围,如下所示:Javascript 使用持续时间为24小时的格式的小时列表填充数组,javascript,jquery,time,Javascript,Jquery,Time,我有两个输入来选择一个小时范围,如下所示: <input type="text" id="from" name="from" value="1:00" /> <input type="text" id="to" name="to" value="20:00" /> 我找到了一种方法,如果输入的小时数大于输入的小时数,我会如下所示 let hoursTo = $('#to').val(); let hoursFrom = $('#from').val(); if (hou
<input type="text" id="from" name="from" value="1:00" />
<input type="text" id="to" name="to" value="20:00" />
我找到了一种方法,如果输入的小时数大于输入的小时数,我会如下所示
let hoursTo = $('#to').val();
let hoursFrom = $('#from').val();
if (hoursFrom < hoursTo) {
for (let i = hoursFrom; i <= hoursTo; i++) {
runHoursArray.push(i.toString());
}
}else {
// need help in the store logic in order to cover nightshifts
}
注意:我只想存储小时数
谢谢。基于解释和大量假设,我写下了这个答案 在写答案之前,我希望你纠正这一部分。您需要.val进行比较。您没有比较元素
let hoursTo = $('#to').val();
let hoursFrom = $('#from').val();
如果你想加上夜班,那么是的,你必须允许这样的值。你能做的是,检查持续时间,如果持续时间不符合人道,比如23小时,一般来说没有人愿意工作23小时,告诉他这是无效的
为此,您可以执行以下操作:
让hoursFrom=+$'from'.val;
让hoursTo=+$'to'.val;
$button.clickfunction{
如果hoursFrom>hoursTo&&hoursTo+24-hoursFrom受@CBroe comment的启发,我是这样做的:
if (hoursFrom < hoursTo) {
for (let i = hoursFrom; i <= (hoursTo + 1); i++) {
if (i !== 24) {
runHoursArray.push(i.toString());
} else {
runHoursArray.push("0");
}
}
} else {
for (let i = 0; i <= (hoursTo + 1); i++) {
runHoursArray.push(i.toString());
}
if (hoursFrom > 12) {
for (let j = hoursFrom; j <= 23; j++) {
runHoursArray.push(j.toString());
}
} else {
for (let i = hoursTo; i <= (hoursFrom + 1); i++) {
runHoursArray.push(i.toString());
}
}
}
谢谢你的回答,我更正了你提到的val,但我想你误解了这个问题的目的,我的问题不在于允许值,我的问题在于存储它们。@Kamemili也许……你能澄清一下,这样我们两个的速度是一样的。@Kamemili啊,存储它们……好的,让我想想……那么,在else分支中做两个循环然后呢?从一小时到一小时
let hoursTo = $('#to').val();
let hoursFrom = $('#from').val();
if (hoursFrom < hoursTo) {
for (let i = hoursFrom; i <= (hoursTo + 1); i++) {
if (i !== 24) {
runHoursArray.push(i.toString());
} else {
runHoursArray.push("0");
}
}
} else {
for (let i = 0; i <= (hoursTo + 1); i++) {
runHoursArray.push(i.toString());
}
if (hoursFrom > 12) {
for (let j = hoursFrom; j <= 23; j++) {
runHoursArray.push(j.toString());
}
} else {
for (let i = hoursTo; i <= (hoursFrom + 1); i++) {
runHoursArray.push(i.toString());
}
}
}