• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:時間が経つと表示文字が変わる構文)

PHPを使って表示文字が変わる構文を実装する方法

このQ&Aのポイント
  • PHPの含まれた会社のホームページで、担当者が体調不良のため急遽変更が必要です。HTMLの知識が少ないため質問します。
  • 6時~11時59分は「おはようございます」と表示し、12時~17時50分は「こんにちは」と表示し、18時~翌朝5時59分は「こんばんは」と表示する構文を実装したいです。
  • 現在は「おみくじ」が表示されるようになっており、それを上記の「あいさつ」に変更したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

微妙に作業依頼っぽいですが。 >マニュアルを見ても記述方法を見つける事が出来ない為、 http://jp.php.net/manual/ja/ref.datetime.php あと10回は読み返しましょう・・・といいたいところですが 専門職でない場合はしょうがない部分もあるかもしれません^^; //朝しきい値 6:00 $sikii_oha = mktime(6,0,0); //昼しきい値 12:00 $sikii_tiwa = mktime(12,0,0); //夕しきい値 17:50 $sikii_bawa = mktime(17,50,0); $ret = ''; if($sikii_oha < time() and time() < $sikii_tiwa) {  $ret = 'おは'; } else if($sikii_tiwa <= time() and time() < $sikii_bawa) {  $ret = 'ちわ'; } else {  $ret = 'ばわ'; } echo $ret; 精査してないので不具合が起きた場合は適時直してください。

di-keichu
質問者

お礼

ご回答ありがとうございます。 こちらの構文で無事求めていた作業を行う事が出来ました。 ありがとうございます。

その他の回答 (3)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.4

あー。いや別に気は悪くしてないので気にしないでください^^; 仕事としてやる以上は責任を持ちましょう、そのための努力を惜しむことは避けて 出来ることは全てしましょう、ただし丸投げは努力放棄に等しいですよ、 ということを強調したかっただけなので。。 もし不具合が起きた場合は休んだコーディング担当者の責任になるわけですしね。 誰かに聞くということは責任が答えた人に及ぶこともありえるわけで、 こういったpublicな場で聞くのは責任放棄だということです。 // 不具合の責任の所在が宙ぶらりんになり、最悪の場合は代理記述した質問者様に矛先が来ます。 それを避けるためには多少なりとも知識を蓄えた上で質問した方がいいですよ、ということで。

di-keichu
質問者

お礼

おっしゃる通りです。肝に銘じます。 この度はありがとうございました。 感謝の気持ちを込めてお礼ポイントを 入れさせて頂きますね。本当にありがとうございました。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

>   $CheckHour = date("H",microtime());//時間を取得(00~23) >   $CheckMinutes = date("i",microtime());//分を取得(00~59) >ただ、今教えて頂いた通りのコードを入れてみたのですが、 >現在22:57ですが、「おはようございます」と表示されました。 当たり前です。 http://jp2.php.net/date http://jp2.php.net/microtime date()の第二引数はintです。microtime()は文字列かfloatしか返しません。 やるならば date('H',time()); か date('H'); の間違いでしょう。 ですがシステム的な面から見ますと、date()を使用し時と分を分けて考えるのはナンセンスです。 コーディング担当者が見たらブチ切れるでしょう。私ならば書いた奴を殴ります。 その人の負担を少しでも減らしたいのであればもう少し勉強するか、そうでないなら見捨てた方がお互いのためと思われます。 社命ならば血反吐はくまで勉強してください。

di-keichu
質問者

お礼

緊急を要した為、こちらに質問させて頂きました。 お気を悪くしてしまい、申し訳ございませんでした。

  • swqamy
  • ベストアンサー率37% (11/29)
回答No.1

記載されているプログラムでは難しそうですよ。 記載プログラムはこのようになっていますが <?php srand ((float) microtime() * 10000000);//現在の Unix タイムスタンプをマイクロ秒まででランダム値を作成 //表示内容を配列に格納 $omikuji = array ( "大吉", "中吉", "吉", "凶" ); $rand_keys = array_rand($omikuji, 2);//配列から一つ以上の要素をランダムに取得する ?> <!-- テキストボックスに表示 --> <input name="omikujifield" type="text" value=<? echo $omikuji[$rand_keys[0]] ?> size="50"> ランダム値で判断しているので「固定の条件」では難しいと思います。 代わりにこんなプログラムを作りました。 <?php    $CheckHour = date("H",microtime());//時間を取得(00~23)    $CheckMinutes = date("i",microtime());//分を取得(00~59)   /************************************************************************    Debug用    どのように取得されているか見たかったらコメントをはずして下さい    必要ないので消してもらって構いません     ************************************************************************/    //print $CheckHour."<br>\r\n";    //print $CheckMinutes."<br>\r\n";    /***********************************************************************/    $Greeting = "";    if(6 <= $CheckHour && 11 >= $CheckHour){//6時~11時59分       $Greeting = "おはようございます";    }elseif(12 <= $CheckHour && 16 >= $CheckHour){//12時~16時       $Greeting = "こんにちは";    }elseif($CheckHour==17){//17時50分       if($CheckMinutes <= 50){          $Greeting = "こんにちは";       }    }elseif(18 <= $CheckHour && 23 >= $CheckHour){//18時~翌朝5時59分       $Greeting = "こんばんは";    }elseif(0 <= $CheckHour && 5 >= $CheckHour){       $Greeting = "こんばんは";    }else{       //17持51分~17時59分の処理    } ?> <html> <head></head> <body>    <form>    <!-- テキストボックスに表示 -->    <input name="omikujifield" type="text" value=<? echo $Greeting ?> size="50">    </form> </body> </html>

di-keichu
質問者

お礼

ご回答ありがとうございます!助かります。 ただ、今教えて頂いた通りのコードを入れてみたのですが、 現在22:57ですが、「おはようございます」と表示されました。 何か私の方で誤ってますかね?コピペをしたのですが・・・

関連するQ&A