如何在javascript中将小时添加到选定时间

如何在javascript中将小时添加到选定时间,javascript,Javascript,我对javascript和jQuery非常陌生,我有三个字段:FromTime、Working hrs和to Time。如果我选择从时间10:00到工作小时03:00,则预期结果为时间02:00 <select name="timestart"> <option value="00:00">00:00 am</option> <option value="00:30">00:30 am</option> <option value

我对javascript和jQuery非常陌生,我有三个字段:FromTime、Working hrs和to Time。如果我选择从时间10:00到工作小时03:00,则预期结果为时间02:00

<select name="timestart">
<option value="00:00">00:00 am</option>
<option value="00:30">00:30 am</option>
<option value="01:00">01:00 am</option>
</select>

00:00上午
00:30
凌晨1:00

只在所选时间中添加小时。

您不需要任何第三方JS库来实现所需。由于您没有提供进一步的信息,我将假设:

  • 时间在内部以军事时间表示(即晚上10:00=22:00)。例如,会有这样一个项目:
    10:00pm
    。最长可代表时间为23:59
  • “工作时间”的值不能超过24小时
  • 以下代码返回将给定时间量(小时)添加到给定军事时间的军事时间:

    function addhrs(time, toadd) {
        var hh = parseInt(time.substr(0, 2), 10); //Get the hours
        var mm = parseInt(time.substr(3, 2), 10); //Get the minutes
        var ahh = parseInt(toadd.substr(0, 2), 10); //Get the hours to add
        var amm = parseInt(toadd.substr(3, 2), 10); //Get the minutes to add        
        var minutes = hh*60 + mm;
        var minutes_to_add = ahh*60 + amm;
        var result_minutes = (minutes + minutes_to_add) % 1440;  //Prevent total number of minutes to exceed the minutes in a day.
    
        var result_hours = Math.floor(result_minutes / 60);
        result_minutes -= result_hours * 60;
    
        return ('0'+result_hours).substr(-2) + ":" + ('0'+result_minutes).substr(-2); 
    
    }
    
    addhrs('22:00', '03:00'); //Returns: 01:00
    addhrs('12:30', '01:30'); //Returns 14:00
    addhrs('12:00', '24:00'); //Returns 12:00
    addhrs('12:00', '12:00'); //Returns 00:00
    

    请解释您发布的HTML如何与您的问题相关。此外,如果您对JS代码有问题,请发布您到目前为止的尝试以及遇到的问题。如果填充的值不正确,是什么?说明什么不起作用。使用moment.js。不是10:00+3hrs=01:00吗?我使用3次控制。从时间,工作小时,到时间。如果我选择10:00从时间和03:00工作小时,那么到时间将是01:00。如果我通过addhrs('22:00',03:30);然后??你要求增加小时数。等一下,我来更改代码。好的,完成了。记住以字符串形式传递要添加的金额,格式为“hh:mm”。完美的解决方案,先生。