所以我的一段代码有一个小问题,我有一个向程序添加检查点的系统,我希望它每14分钟添加一个检查点,但我也想将其限制为仅根据课程多少小时添加x个检查点数量。例如,第一门课程有12个小时,所以我只想创建12个检查点,但是它基于$ time_in_secs创建16个检查点,因此该变量在检查程序开始和结束日期之间的时间将始终不同。对于第二个程序,它有24小时,但是它创建了33个检查点,依此类推。 $ checkpoint_limit是我要限制for循环的范围,但是我仍然需要将其添加840,因为这是秒数的时间,并且我需要每14分钟创建一个检查点
我做了一些不同的事情,但似乎没有一个起作用。尝试设置min()也尝试执行if,但似乎也不起作用。
$checkpoint_limit = (abs($numHours) * 3);
//840 = 14 minute interval * 60
for ($i = 840; $i < $time_in_secs; $i += 840) {
//Code here that adds the checkpoints
}
答案 0 :(得分:0)
在&&运算符的循环中使用第二个条件。例如;
$j=0
for($i=840;$i<$timeInSecs && $j<12;$i +=840)
{
//example code here
$j++
}
很抱歉我使用的是SO mobile且回答的质量很差,所以j变量就像一个检查点时间。您添加了14分钟的检查点,我得到的是您希望它循环对于特定的计数,您可以通过这种方式来实现。并且应该在for循环的末尾增加$ j。
答案 1 :(得分:0)
在for循环中,检查是否创建了检查点,如果检查点超过$ checkpoint_limit,则中断循环。
尝试:
$checkpoint_limit = (abs($numHours) * 3);
$no_of_checkpoints = 0;
//840 = 14 minute interval * 60
for ($i = 840; $i < $time_in_secs; $i += 840) {
//Code here that adds the checkpoints
$no_of_checkpoints++;
if($no_of_checkpoints > $checkpoint_limit){
break;
}
}