Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 在html输入时间类型中格式化输入的时间_Javascript_Html - Fatal编程技术网

Javascript 在html输入时间类型中格式化输入的时间

Javascript 在html输入时间类型中格式化输入的时间,javascript,html,Javascript,Html,我想让输入类型为time的用户只能输入分钟xx:00或xx:30的值。 在下面的代码中,我尝试将分钟向上或向下舍入 但我不满意,因为当我点击输入时,我无法立即输入两位数的小时,例如12或23,因为它会在我看来是12-01 later 02,23-02 later 03(自己检查某人) 还有人知道怎么做吗 const timeInputs=document.querySelectorAll('input.test1,input.test2'); 常量roundFunc=e=>{ 设x=e.tar

我想让输入类型为time的用户只能输入分钟xx:00或xx:30的值。

在下面的代码中,我尝试将分钟向上或向下舍入

但我不满意,因为当我点击输入时,我无法立即输入两位数的小时,例如12或23,因为它会在我看来是12-01 later 02,23-02 later 03(自己检查某人)

还有人知道怎么做吗

const timeInputs=document.querySelectorAll('input.test1,input.test2');
常量roundFunc=e=>{
设x=e.target.value.split(“:”);
如果(x[1]>00&&x[1]<15){
x[1]=“00”;
}如果(x[1]>44&&x[1]<60){
x[0]=x[0]<10?“0”+(parseInt(x[0])+1):parseInt(x[0])+1;
x[1]=“00”;
}
否则{
x[1]=“30”;
}
e、 target.value=x.join(“:”);
}
timeInputs.forEach(输入=>{
addEventListener('input',roundFunc);
});

首先,我注意到如果分钟是“00”,您将把时间设置为“30”。您需要更改此条件:

if (x[1] > 00 && x[1] < 15) {
if(x[1]>00&&x[1]<15){
为此:

if (x[1] >= 00 && x[1] < 15) {
如果(x[1]>=00&&x[1]<15){
此外,如前所述,舍入是不对称的;时间很可能是30而不是00,因为45和15都是30。您可能需要将其中一个设置为00

我听说Format=“HH:mm”应该适用于24小时模式,但我自己还没有尝试过这种方法。

您可以使用(在几秒钟内):