【コピペOK】phpで時間や曜日で表示を変える方法

開発日記

こんにちわ。 イチハチです。

プログラミング言語であるphpは難しいですよね。 ずっと触り続けることでだんだんと慣れてくるのですが、初めのころは何がなんだかわかりませんでした。 今でも勉強中です。

みなさん、PHPを使って、時間別で表示する内容を変更したいとか、曜日別で表示する内容を変更したいけど、やり方が分からないとお悩みではありませんか?

この記事では「時間別」と「曜日別」で表示内容を変更することが出来るようになるのと、この記事の最後にファイルを添付しておきますので、誰でもファイルをダウンロードすることができます。

スポンサーリンク

phpを使って時間で表示内容を変更する方法

まずは、時間別で表示する内容を変更の仕方になります。

PHPコード

phpを書き始めるときは「 <?php 」  で始まり、「 ?> 」 こちらで終わるようにしましょう。

$today = getdate();  
if($today[hours] >= 6 and $today[hours] < 18) {           
    echo "6時〜18時";
}
elseif($today[hours] >= 19 and $today[hours] < 22) { // 19時~22時
    echo "19時〜22時";
}
else {    //22時~6時
    echo "22時〜6時";
}

こちらがphpのコードになります。

コード内容の説明

まずは、getdate関数を使って日時の情報を取得できるようにしておきます。

$today = getdate();

次に、条件分岐です。 if文を使い、6時から18時を指定してあげます。
$today[hours] ←このコードが現在の時の値を取得しています。

$today = getdate(); 
if($today[hours] >= 6 and $today[hours] < 18) {
 echo "6時〜18時"; 
}

elseif〜 は通常の条件分岐なので、必要な分だけ追加すると完璧です。

パターン別で見てみよう

午前中と午後で分ける

午前中(0時から12時)の間は午前中です。と表示し、それ以外の時間を午後と表示します。

$today = getdate(); 
if($today[hours] >= 0 and $today[hours] < 12) {
 echo "午前中です。"; 
}else{ 
echo "午後です。"; 
}

朝、昼、夕、夜の4パターンで分ける

朝(6時から10時まで)と昼(10時から16時まで)と夕方(16時から18時まで)夜(18時から朝6時まで)で分ける場合。

$today = getdate(); 
if($today[hours] >= 6 and $today[hours] < 10) {
 echo "午前中です。"; 
}elseif($today[hours] >= 10 and $today[hours] < 16) { 
echo "午後です。"; 
}elseif($today[hours] >= 16 and $today[hours] < 18) { 
echo "夕方です。"; 
}else{
echo "夜です。";
}

曜日で分ける

曜日で分ける場合には、$today[wday] を使います。
0=日曜日 1=月曜日 2=火曜日 となっており、数字で曜日が変わる仕組みになっています。

月曜から金曜日が「平日」で、土曜、日曜が「週末」と表示させる場合はこのように書きます。

$today = getdate(); 
if($today[wday] == 0 || $today[wday] == 6) {
 echo "週末です。"; 
}elseif($today[wday] >= 1 and $today[hours] < 6) { 
echo "平日です。"; 
}

その他のパターン

そのほかにもgetdate()関数を使えば様々な日時関係の条件を分ける事が可能になります。

getdate()関数が返す連想配列一覧
キー 値の意味
year 年の値(4桁) 2005 など
yday 年単位の日 0 ~ 365
mon 月の値(数値) 1 ~ 12
month 月の値(フルスペル) January ~ December
mday 日付の値 1 ~ 31
wday 曜日の値(数値) 0(日曜) ~ 6(土曜)
weekday 曜日の値(フルスペル) Sunday ~ Saturday
hours 時の値 0 ~ 23
minutes 分の値 0 ~ 59
seconds 秒の値 0 ~ 59
0 タイムスタンプ値 の値と同様。 1121011416 など

これらを使い分けて、ご自身のサイトをもっと面白くすることができますね。

PHPとHTMLを組み合わせる場合

PHPコードの間にHTMLを組み合わせた場合もあるかと思いますが、そういった場合には、下記のようにコーディングすることでHTMLも自由に書き込むことが可能です。

<?php
$today = getdate(); 
 if($today[wday] == 0 || $today[wday] == 6) { ?>
<img src="img/sample.png" alt="">
<?php }elseif($today[wday] >= 1 and $today[hours] < 6) { ?>
<img src="img/sample2.png" alt="">
<? } ?>

 

まとめ

いかがでしたでしょうか。

PHPの条件分岐を使った時間別に表示内容を変えるという内容でした。

プログラミングの知識があるとより人生の幅が広がることは間違いないです。 もっと真剣に学びたいときはスクールなどで基礎知識を学ぶこともおすすめいたします。

気軽に学べるプログラミング

下記の2つはイチハチがおすすめするプログラミング講座があるサービスです。
umdeyというサービスではよく割引きセールをおこなっているので、安いもので1200円ほどで、本格的なプログラミングを学ぶことも可能です。

もし本格的に学んでみたいと思った場合はぜひこちらもご検討してみてはいかがでしょうか。

いろんなプログラミング講座が豊富なUmedy

世界最大のオンライン学習サイトUdemy

直接プロから出向いて 学べるストアカ

【ストアカ】

 

コメント