Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 for循环中的时间比较_Javascript_For Loop - Fatal编程技术网

Javascript for循环中的时间比较

Javascript for循环中的时间比较,javascript,for-loop,Javascript,For Loop,我面临一个奇怪的问题。下面是在Javascript中创建不同时间段的代码: 函数秒至秒(秒){ var小时=数学楼层(秒/(60*60)); var ampm=小时数>=12?“下午”:“上午”; 小时数=小时数%12 | | 12; 分钟的var除数=s%(60*60); var minutes=数学下限(除数为分钟/60); var userfriendlytime=('0'+小时).slice(-2)+:“+('0'+分钟).slice(-2)+”“+ampm; 返回用户友好时间; }

我面临一个奇怪的问题。下面是在Javascript中创建不同时间段的代码:

函数秒至秒(秒){
var小时=数学楼层(秒/(60*60));
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12 | | 12;
分钟的var除数=s%(60*60);
var minutes=数学下限(除数为分钟/60);
var userfriendlytime=('0'+小时).slice(-2)+:“+('0'+分钟).slice(-2)+”“+ampm;
返回用户友好时间;
}
$(文档).ready(函数(){
变量ptc_id=“236051”;
var ptc_date=“2021年4月30日”;
var ptc_from_time=“5400”;
var ptc_to_time=“46800”;
var ptc_duration=“07”;
var ptc_duration_in_seconds=parseFloat(ptc_duration)*60;
var ptc_passing_time=“03”;
var ptc_passing_time_in_seconds=parseFloat(ptc_passing_time)*60;
var timefrom=ptc\u from\u时间;
var timeto=ptc_至_时间;
var slottimeto=parseFloat(timefrom)+parseFloat(ptc_duration_,以秒为单位);
for(time=timefrom;time-timeto){
打破
}
}
});

您的程序无法正常工作,因为您正在使用字母数字值执行一个应该是数字的比较:

time <= timeto

time实际上,您已经使用双引号将
ptc\u from\u time
ptc\u to\u time
用作字符串文字,因此条件(
time=12?'PM':'AM';
小时数=小时数%12 | | 12;
分钟的var除数=s%(60*60);
var minutes=数学下限(除数为分钟/60);
var userfriendlytime=('0'+小时).slice(-2)+:“+('0'+分钟).slice(-2)+”“+ampm;
返回用户友好时间;
}
$(文档).ready(函数(){
变量ptc_id=“236051”;
var ptc_date=“2021年4月30日”;
var ptc_from_time=5400;
var ptc_至_时间=46800;
var ptc_持续时间=7;
var ptc_duration_in_seconds=parseFloat(ptc_duration)*60;
var ptc通过时间=3;
var ptc_passing_time_in_seconds=parseFloat(ptc_passing_time)*60;
var timefrom=ptc\u from\u时间;
var timeto=ptc_至_时间;
var slottimeto=parseFloat(timefrom)+parseFloat(ptc_duration_,以秒为单位);
for(time=timefrom;time-timeto){break;}
}
});

谢谢你的建议,它起作用了。我从用户输入中获取所有数字,因此希望确保所有数字都是数字。输入经过验证,但仍然希望在javascript结尾确保所有传递的数字都是数字。是的,这很好。我建议你可以创建自己的function
createSlots(ptc\u id、ptc\u date、ptc\u from\u time、ptc\u to\u time等)
,它应该做的第一件事是通过
parseInt
parseFloat
等将每个参数转换为正确的类型。这样,您可以安全地通过传递字符串或数字参数值来调用此函数。