Javascript 输入的时间加30分钟
我有2个输入(type=“time”)。我希望在第一个输入字段中输入的时间为+30分钟,并将其写入第二个输入字段。可能吗?我不太擅长JS:IJavascript 输入的时间加30分钟,javascript,html,Javascript,Html,我有2个输入(type=“time”)。我希望在第一个输入字段中输入的时间为+30分钟,并将其写入第二个输入字段。可能吗?我不太擅长JS:I <html> <form> <label for="start">Start: <input type="time" id="start" name="start" step="600"> </label><br> <label for="
<html>
<form>
<label for="start">Start: <input type="time" id="start" name="start" step="600"> </label><br>
<label for="ende">Ende: <input type="time" id="ende" name="ende" step="600"> </label>
<input type="submit" value="senden">
</form>
</html>
。。。但是如何添加30分钟?您可以在“:”处拆分该值,如此处所述: 然后,通过访问被拆分数组的正确位置并向其中添加30来获得分钟数。然后将值重新组合在一起,并执行以下操作:
document.getElementById("ende").value = newTime;
newTime是添加了30分钟的字符串。时间输入存储一个字符串值,格式为
xx:xx
,其思想是向开始输入添加一个change
事件侦听器,获取其值,向其添加30分钟,然后将其分配给结束输入
下面是一个可运行的代码段,其中显示了一个可能的解决方案,并附有逐步注释:
//获取输入元素
const start=document.getElementById('start');
const end=document.getElementById('ende');
//将更改事件侦听器添加到开始输入
start.addEventListener('change',()=>{
//以整数值形式获取小时和分钟
让hours=parseInt(start.value.split(“:”)[0]);
让minutes=parseInt(start.value.split(“:”)[1]);
//再加30分钟
分钟+=30;
//如果超过一小时,则将其添加到小时
//并说明一天过去了
如果(分钟>=60){
小时=(小时+1)%24;
分钟-=60;
}
//将值重新格式化为固定长度为2的字符串
小时数=(小时数<10?`0${hours}`:`${hours}`);
分钟=(分钟<10?`0${minutes}`:`${minutes}`);
//为结束输入指定新值
end.value=`${hours}:${minutes}`;
});代码>
开始:
恩德:
document.getElementById('start')。值+30以及如何将结果(输入的时间+30分钟)写入第二个输入字段?“运行代码片段”不起作用。但它看起来不错,我会在代码中检查它。:)我得到这个错误:错误:{“message”:“Syntaxfehler”,“filename”:“,“lineno”:20,“colno”:37}我在Chrome中测试了它,它工作了。在Internet Explorer中,它不会。不要问我为什么使用资源管理器:D@qpA我怀疑Internet Explorer与JS有问题。您可以修改此解决方案以使用+
符号生成字符串来修复此问题。例如,如果您有一个04:35的输入,并且必须添加30分钟,该怎么办?
document.getElementById("ende").value = newTime;