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を返す可能性がありますが、2番目の条件をヒットします。最初の条件がfalseの場合、最初の条件で何に設定されたかに関係なく、elseブロックで変数が0に設定されます。次のような場合は、2番目のifステートメントをelseにする必要があります。

 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 に答える