• HOME > 
  • PHP > 
  • PHPで曜日を取得する方法【初心者にもわかりやすく解説】

PHPで曜日を取得する方法【初心者にもわかりやすく解説】

投稿日:

date関数を使って曜日を取得する方法

WEBサイトやWEBサービスを制作していると今日の曜日を表示させたり、曜日に応じた表示の切替を求められる状況があります。

このページでは、そのような場面でPHPを使って曜日を取得する方法について説明します。

曜日の取得は「date関数」で実現できます。

しかし、日本語の曜日を表示させるとなると少し工夫が必要になるので注意が必要です。

date関数のおさらい

まずはじめにPHPのdate関数がどのようなものかを簡単におさらいしておきましょう。

PHPはdate関数を用いることで現在の日時を取得することができるようになっています。

年であれば「Y」、月であれば「m」、日であれば「d」といったようにフォーマットを行うことで現在の年月日や時刻を取得できたり、特定の日時を取得することも可能です。

日時と連動させたシステムを構築するプログラミングには欠かすことのできない関数です。

PHP

<?php
    echo date('Y/m/d H:i:s');
?>

プレビュー

date関数
リンク先のサムネイル
PHPで日付を取得する方法

date関数は当日の日付を年月日で取得することが出来る関数です。date関数は「date('フォーマット形式')」という形で記述します。フォーマットには「Y/m/d」や「Y年m月d日」などがあります。...

date関数で曜日を取得するには?

date関数で取得できるのは年月日や時刻だけではありません。

「D」で英語表記の曜日、「w」で曜日番号が取得できる

フォーマットに「D」を使用すると「Sun、Mon...」のように英語表記の曜日を取得することができます。

PHP

<?php
    echo date('Y/m/d');
    echo '(' . date('D') . ')';
?>

プレビュー

曜日を表示

また、「w」を使用すると、日曜日を「0」番目として土曜日の「6」までの番号で取得することができます。

PHP

<?php
    echo date('Y/m/d');
    echo '(' . date('w') . ')';
?>

プレビュー

曜日を表示

日本語の曜日を表示するには?

さて肝心の日本語の曜日の表示ですが、残念ながらdate関数では英語表記の曜日しか取得できません。

しかし、こちら側で日本語表記を準備すれば曜日番号を利用して日本語で表示させる仕組みを作ることが可能です。

曜日を配列にする

日本語表記を準備するとはつまり、日~土までの各曜日の文字列を格納した配列を作るということです。

先程触れたdate関数のフォーマット「w」で今日の曜日番号を取得し、配列内のその番目の文字列を取り出せば日本語の曜日を表示することができます。

PHP

<?php
    $week = array("日","月","火","水","木","金","土");
    $today = $week[date("w")];
    echo "今日は" . $today . "曜日です。";
?>

プレビュー

曜日を表示

日曜を先頭にしておく

この時重要なのが日曜日を先頭にして順番に記述するということです。

dateで取得できる曜日番号は日曜から順に「0、1、2、3...」という形式になっているので、こちらと連動するように日曜から順に配列に収めておかなければ取り出す際にずれた曜日を取得してしまいます。

表記の仕方は自由

上記の例では「日、月、火...」という書き方をしていますが、「日曜日、月曜日、火曜日...」でも「SUNDAY、MONDAY、TUESDAY...」という書き方にしてもOKです。

曜日がずれている場合の対処方法

実際の曜日と異なる曜日が表示されたり日付や時間がずれている場合は、PHPのタイムゾーンが正しく設定されていない可能性があります。

サーバー側の設定ファイルである「php.ini」を開いてタイムゾーンを日本(Asia/Tokyo)に変更するか、プログラム内でdete_default_timezone_set("Asia/Tokyo")を使用してタイムゾーンの変更を行って下さい。

リンク先のサムネイル
PHPのタイムゾーンの設定方法【現在時刻がずれている時の対処法】

タイムゾーンとはその名のとおり、時間によって世界の地域を区分けしたものです。このタイムゾーンの設定によってWEBサイトは世界のどの地域の時刻を使用するかを決定しています。WEBサイトで日本の時刻を扱うためにはタイムゾーンを正しく設定しておく必要があり、反対に日本であっても他の地域のタイムゾーンを設定することも可能です...

曜日取得したい場面

実際には曜日を表示するだけではなく、曜日ごとにサイト上の表示を変化させたいというニーズがほとんどだと思います。

例えば「お店のサイトで曜日に応じて休業日や異なる営業時間を表示させたい」などです。

そのような場合は、上記の方法で取得した当日の曜日を利用して、曜日に応じて実行する処理を分岐させれば実現可能です。

ここでは、例で述べた「曜日に応じて休業日や異なる営業時間を表示させたい」という処理を作成してみます。

PHP

<?php
    $week = array("日","月","火","水","木","金","土");
    $today = $week[date("w")];
    echo date("Y年m月d日") . "(" . $today . ")";
    if($today == "土" || $today == "日"){
        echo esc_html("本日は休業日");
    }else{
        echo esc_html("本日は10:00-18:00まで営業中");
    }
?>

プレビュー

曜日に応じて休業日や異なる営業時間を表示 曜日に応じて休業日や異なる営業時間を表示

if文を用いてdate関数で取得した今日の曜日が「土」か「日」であれば「本日は休業日」を表示し、それ以外であれば「本日は10:00-18:00まで営業中」が表示されます。

まとめ

曜日を取得することができれば、曜日ごとに表示を変えるといったスケジュールと連動したシステムを持たせたサイトを作ることも可能です。訪問者がその日に求めている情報を正確に提供するためにもdate関数による曜日取得の方法を理解しておいてください。

関連する記事

サムネイル

【PHP】Composerをインストールする方法(Windo……

2023年03月15日
Composerとは? Composer(コンポーザー)とは、PHPのパッケージ(ライブラリ)依存管理ツールです。 PHPによる開発に必要なフレームワークやパッ […]
サムネイル

PHPのタイムゾーンの設定方法【現在時刻がずれている時の対処……

2022年02月06日
タイムゾーンとはその名のとおり、時間によって世界の地域を区分けしたものです。このタイムゾーンの設定によってWEBサイトは、世界のどの地域の時刻を使用するかを決定しています。
サムネイル

phpでファイルを読み込む方法

2020年12月26日
最終更新日:2022年01月28日
ファイルを読み込むには? PHPでは別ファイルを読み込んでブラウザに出力することができます、例えばヘッダーやフッター、サイドバーなどサイトのパーツごとに別のファ […]
サムネイル

PHPのdate関数を使って日付を取得する方法【初心者にもわ……

2020年12月26日
最終更新日:2022年02月05日
date関数は当日の日付を年月日で取得することが出来る関数です。date関数は「date(‘フォーマット形式’)」という形で記述します。フォーマットには「Y/m/d」や「Y年m月d日」などがあります。
サムネイル

PHPで四則演算を行う方法【加算・減算・乗算・除算】

2020年12月26日
最終更新日:2023年03月14日
HPで計算を処理する場合には算術演算子を使用して行います。足し算には「+」、引き算には「-」、掛け算には「*」、割り算には「/」を使用します。
サムネイル

PHP内でのコメントアウトの方法

2020年12月26日
最終更新日:2022年01月27日
記述の仕方 コメントアウトが1行だけの時とコメントアウトの範囲が複数行に渡るときとではコメントアウトの方法が異なります。 一行分だけコメントアウトする場合 コメ […]