• 締切済み

phpで時間毎に数値を指定したい

時間帯によって指定の数値を変更したい のですが、私の知恵ではちょっと無理 っぽいので、phpに詳しい方お力をお貸し 下さいませ(。v_v。) 例えば$max1 = $n1max1+5; この$n1max1+5;の値を時間毎に変更した いのですが、この様な事は可能なので しょうか? ネットで色々調べてみて自分なりに 下記の文でやってみたのですが、 これだと一番最後に指定した+5しか 反映されず時間帯毎には数値を変更 できませんでした。 if (date('H') >= 21 and date('H') <= 23) { $nmax1 = $n1max1+11; } elseif (date('H') >= 23 and date('H') <= 2) { $nmax1 =n1max1nChatRoomCnt+21; } elseif (date('H') >= 2 and date('H') <= 3) { $nmax1 = $n1max1+11; } else { $nmax1 = $n1max1+5; } かなりの初心者なのでやさしく教えて下さる 知恵の持ち主様ヨロシクお願い致します。 要するに普段は $nmax1 = $n1max1+5; これだけで常時$nmax1の値を+5で表示して いる訳なのですが、これを時間帯毎に変更 したい訳でございます。 理想は21時~23時は+10 23時~2時は+20 2時~4時は+10 それ以外の時間は+5 みたいな感じです。 お願い致します。(。v_v。)

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

date('H') で時間を取得しているので、23時台(23:00~23:59)はすべて『23』が返ってきます。 この場合、21時~23時は+10 と 23時~2時は+20 という条件において23時台はどちらに含むのかが明確にでは無いのでプログラムに矛盾が生じています。 同様に2時台についてもプログラムに矛盾が生じています。 また、23時~2時と言う条件は時間の考え方としては連続していますが、数値としては連続していませんので、『23時以降 若しくは 2時まで』と言う風に考えなければいけません。 以上を考慮し、23時台は+20、2時台は+10、4時台は+5 にするなら if (date('H') >= 21 && date('H') < 23) { $nmax1 = $n1max1 + 10; } elseif (date('H') >= 23 || date('H') < 2) { $nmax1 = $n1max1 + 20; } elseif (date('H') >= 2 && date('H') < 4) { $nmax1 = $n1max1 + 10; } else { $nmax1 = $n1max1 + 5; } 23時台は+10、2時台は+20、4時台は+10 にするなら if (date('H') >= 21 && date('H') <= 23) { $nmax1 = $n1max1 + 10; } elseif (date('H') <= 2) { $nmax1 = $n1max1 + 20; } elseif (date('H') > 2 && date('H') <= 4) { $nmax1 = $n1max1 + 10; } else { $nmax1 = $n1max1 + 5; }

tomatokozou
質問者

お礼

早々のご返答ありがとうございます。 早速試してみたいと思います。