0

看看这段代码,请告诉我这怎么可能在星期三完美运行,但在星期二却不行:

 <?php
$current_time = strtotime('now');
if ($current_time > strtotime('tuesday this week 8:45pm') && $current_time < strtotime('tuesday this week 11:45pm')) {
 $background = 1;
}
if ($current_time > strtotime('wednesday this week 8:45pm') && $current_time < strtotime('wednesday this week 11:45pm')) {
 $background = 1;
}
else{
$background = 0;
}

?>

   <script>
   var backday = <?php echo json_encode($background); ?>;
   </script>

对于星期二,它返回 0,但对于星期三,它应该返回 1。为什么?

4

1 回答 1

3

你的逻辑有错误。第一个条件可能会返回 1,但随后您会遇到第二个条件。如果第二个条件中的第一个 if 为假,它将在 else 块中将变量设置为 0,而不管它在第一个条件中设置为什么。您需要将第二个 if 语句设置为 else if,如下所示:

 if ($current_time > strtotime('tuesday this week 8:45pm') && $current_time <   strtotime('tuesday this week 11:45pm')) {
    $background = 1;
}
else if ($current_time > strtotime('wednesday this week 8:45pm') && $current_time < strtotime('wednesday this week 11:45pm')) {
   $background = 1;
}
else{
   $background = 0;
}
于 2012-09-18T20:35:40.433 回答