• 締切済み

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。)

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5043/13172)
回答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
質問者

お礼

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

関連するQ&A

  • ★エクセルのMAX関数について★

    エクセルのMAX関数についてご質問します。例えば、 A1セルに$B$1:$B20の文字列が入っているとします。 普通にMAX関数を使う時は引数を=MAX($B$1:$B20)と直接入力しますが、=MAX(A1セルの値($B$1:$B20))としてMAX関数の引数をあるセルの値の内容にしたいのですが、その方法を教えてください。困ってます。宜しくお願いします!!

  • PHPでクリックすると変数が10増える方法は?

    PHPでクリックすると変数が10増える方法は? PHPの全くの初心者です。 PHPのソースの中にある変数$maxの値を好きな時に10増やすため、 どこかをクリックすれば、$max+=10; が演算されるようにしたいのですが、 どういうソースを書けば、好きなタイミング(クリック時)に、 $max+=10; とすることが出来るでしょうか?

  • MessageBoxでの、書式指定を教えて下さい。

    Windowsで、Visual C++6.0を、使っています。 double max; char szBuf[256]; wsprintf(szBuf,"左 Yの最大値は、%d ",max); MessageBox(hWnd, szBuf, "各最大値", MB_OK); 上記を、実行した時、正しい値を表示してくれません。 デバッガーで見ると、maxには、正しい値、768.55というような値が、入っているようです。 %dを、%fとすると fを表示して値を表示しません。 double型の値を表示させるには、どうしたらいいのでしょうか? 教えて下さい。どうぞよろしくお願いします。

  • 中央値をもとめる

    このプログラムだとたとえば 1、100、99を入力したときに間違った値を出します。どうすればいいでしょうか?おねがいします。 #include <stdio.h> int main(void) { int a, b, c, m; int max; printf("1個目の数値:"); scanf("%d", &a); printf("2個目の数値:"); scanf("%d", &b); printf("3個目の数値:"); scanf("%d", &c); max = a; if(max < b) max = b; if(max <= c) m = max; printf("%d, %d, %d の中央値は%dです。\n", a, b, c, m); }

  • すいません。。改めて質問!!

    #include<stdio.h> #define NMAX 200 int n; int a[NMAX], x[NMAX]; void yomikomi() { for(n=0; scanf("%d%d",&a[n],&x[n])!=EOF;n++); return; } void hyouzi() { int i; for(i=0;i<n;i++) printf("%5d %5d\n",a[i],x[I]); return; } void seiretu() { int i,j,max,k,w; for(i=0;i<n-1;i++){ max=x[i];k=i; for(j=i+1;j<n;j++) if(x[j]>max){ max=x[j];k=j; } w=a[k];a=[k]=a[i];a[i]=w; x[k]=x[i]; x[i]=max; } return; } main() { printf("sorting\n"); yomikomi(); printf(\nInput data\n"); hyouzi(); seiretu(); printf(\nSorted data\n); hyouzi(); return(0); } これを改良して偶数と奇数に分けてソートするプログラムがわかればいいのですが。。まだ慣れないものですいませんでした。

  • エクセルでの時間の時間表記と数値表記について

    時給計算をしています。 11時間45分を 時間表記で 11:45 と表す時 数値表記で 11:75 と表したい時は セルの書式をどのように設定したら良いでしょうか。 [h]:mmにすると、858:00 と、 まったく違う表記になってしまいます。 調べてもわからなかったので、 詳しい方教えてください><

  • フリーランタイマーの時間差分の計測について

    フリーランタイマー(MAXは2byte:0xFFFFとしている)の現在値と前回値の差分を出すとき、 前回値の方が現在値よりも大きくなった場合(要は前回値がMAX付近だった時)は、 MAX値から前回値を引いた値を、現在値に加算して差分を出すという考えは正しいでしょうか ご教授お願いします

  • エクセルで指定範囲の最大値・最小値を求めたい

    エクセルで、A列、B列、C列・・・にそれぞれ100個ずつ数値データがあります。 各列で1番上のデータからn番目のデータまでの範囲の最大値・最小値と、 n+1番目のデータから100番目のデータまでの範囲の最大値・最小値をそれぞれ求めたいのです。 nの値は列ごとに異なっており、例えばA列のn値は[A105]のセルに記入されています。 [A102]=40のとき、 =MAX(A2:A40) =MAX(A41:A101) などと個別に範囲指定をせずに、[A105]の値を引用して最大値・最小値を求めるにはどうすればいいでしょうか。

  • エクセルで数値を時間表示する方法

    エクセルで数値を時間表示する方法を教えてください。 具体的には「3.5」を「3:30」と表示できればとりあえずOKです。 (※小数点以下の値はあってもなくても動かなければ困ります) 基本的にエクセル関数か書式の変更でできる方法を希望しています。 できれば「150.5」を「150:30」「2:30:30」の両方に 表示し分ける方法も教えていただきたいです。 よろしくお願いします。

  • 自作キットを作成したのですが、電池でどのくらいの時間稼働するものかを調

    自作キットを作成したのですが、電池でどのくらいの時間稼働するものかを調べるにはどのようにしたら良いでしょうか。 キットのスペック表には 消費電流:待機時2mA MAX 動作時60mA MAX と書いてあります。 一方、電池は単3電池を4本使用しています。電池の側面などで関係ありそうな数値は1.5Vしか 拾う事ができませんでした。 充電式のエネループでは「1.2V 1900mAh」が関係ありそうな値として拾えました 後者の方では1900mAh/2mA=950時間 と思って良いものでしょうか? 普通の電池の方でどのように計算したら良いものでしょうか? 宜しくお願いします。