首先,我不是程序员(只是对PHP有一些了解)。我制作了一个带有事件列表的网站,其中有一个选择字段,每月使用Ajax加载过滤事件。
该代码在大约3个月的时间里运行良好。但5天前,它突然停止工作,开始生成一个无限循环。
我调试了代码,发现问题出在“同时”循环上。我试图理解为什么这在一段时间内是完美的,然后它就不会了。(用无限循环崩溃服务器)。
这个函数只给出下个月的第一天。很好用。
function first_day_next_month($month, $year){
$month = str_replace("0", "", $month);
if ($month == 12){
return ($year+1)."0101";
}else{
return $year.str_pad($month+1, 2, "0", STR_PAD_LEFT )."01";
}
}
这一个,为选择字段生成“选项”:
function ddown(){
$start = strtotime("10 December 2017");
$end = strtotime("+3 months");
$current = $start;
$meses = array(
"Jan" => "enero",
"Feb" => "febrero",
"Mar" => "marzo",
"Apr" => "abril",
"May" => "mayo",
"Jun" => "junio",
"Jul" => "julio",
"Aug" => "agosto",
"Sep" => "septiembre",
"Oct" => "octubre",
"Nov" => "noviembre",
"Dec" => "diciembre"
);
$o = "";
$selected = "";
$cls = " class=\"gray-out\"";
while ($current < $end){
if(date("m", $current) == date("m", strtotime("today")) AND date("Y", $current) == date("Y", strtotime("today"))){
$selected = " selected=\"selected\"";
$cls = "";
}else{
$selected = "";
}
$current = strtotime(first_day_next_month( date("m", $current), date("Y", $current) ));
}
return $o;
}
我发现这段代码现在正在生成infinte循环:
while ($current < $end){
if(date("m", $current) == date("m", strtotime("today")) AND date("Y", $current) == date("Y", strtotime("today"))){
$selected = " selected=\"selected\"";
$cls = "";
}else{
$selected = "";
}
$current = strtotime(first_day_next_month( date("m", $current), date("Y", $current) ));
}
$current变量未在同时更新。据我所知,这应该是2017年12月10日到今天的3个月,以及这些日期之间每个月的输出和“选项”。
关于如何解决这个问题有什么建议吗?。
(对不起我的英语)。
谢谢
在你的第一天下个月的活动中,你有:
$month = str_replace("0", "", $month);
这将用1代替10,每年10月恢复到1月。
我有2个JTextFields: 对于如何实现该行为的任何帮助都非常感谢,因为我必须为至少10个其他文本字段执行此操作。 谢谢你!
在连接上创建infinte循环!很奇怪,直到现在才发生。我不知道出了什么问题。我试图重建包,我复制一些代码从旧的源代码和相同的结果...
我有一个(Laravel)命令。该命令是做卷曲到一个网站,这是某种网站检查。当服务器关闭时,我想回声出来的东西,但它应该只有一次。 我试过这个代码。不起作用。它不断回响。现在我被卡住了。 我知道上面的代码会一直回响。 目标是当函数从返回true并再次返回true时,它将第二次只回响一次,以此类推。 我希望这个信息是明确的。 还有比这更好的解决办法吗?
问题内容: 我显然面临着一个无限循环,如以下代码所示 一些相关问题解释了为什么如果输入流为true总是返回true ,但是我正在扫描一个。 请让我知道我要去哪里了。 我正在尝试计算唯一整数值的总和(它们出现的位置用空格分隔)。 编辑: 获得的经验教训 不会将指针移到下一行,因此扫描仪不会越过任何输入。正如在此问题的答案中以及此处所解释的。 问题答案: 好吧,据 如果此令牌不是,扫描仪将不会使用
问题内容: 请看下面的Java 无限循环。它导致其下面的语句的编译时错误。 以下相同的无限循环可正常工作,并且不会发出任何错误,其中我只是用布尔变量替换了条件。 同样在第二种情况下,循环之后的语句显然不可访问,因为布尔变量为true,但编译器根本没有抱怨。为什么? 编辑:显然,以下版本的卡在无限循环中,但是即使循环中的条件始终存在,因此循环下面的语句也不会对该语句下的语句发出任何编译器错误,因此循
hasNext()的定义是“如果此扫描仪的输入中有另一个标记,则返回true。此方法可能会在等待输入扫描时阻塞。扫描仪不会前进超过任何输入。” 当我把 standardInput.hasNext() 放在 for 循环中时,程序会向无穷大运行。但是如果我把它放在 while-loop 中,它不会运行到无穷大。这两个程序之间的区别在哪里,为什么其中一个有效而另一个无效? for循环: while-l