Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用持续时间为24小时的格式的小时列表填充数组_Javascript_Jquery_Time - Fatal编程技术网

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());
            }
        }       
}