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

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

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

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関数による曜日取得の方法を理解しておいてください。

関連する記事

サムネイル

XAMPPでSSLを有効にする方法【httpsでアクセスでき……

2024年04月12日
XAMPPをSSL化してhttpsでアクセスできるようにするには、設定ファイルの変更と証明書の作成が必要です。
サムネイル

XAMPPのサイトを別のPCやスマホで開く方法【同一LAN内……

2024年04月12日
同一LAN内(同じWifi環境下)であれば各デバイスのブラウザでURLにIPアドレスを打ち込むだけでPCのXAMPPにあるサイトへアクセスすることが可能です。
サムネイル

XAMPPでPHPのOPcacheの有効化を検証【備忘録】

2024年02月01日
XAMPPでOPcacheの有効化を行ってみたので、その時の手順を備忘録として残しておきます。「OPcache」は、PHPの初回実行時のキャッシュを2回目以降のアクセス時に利用することで、CPU負荷を軽減したり、PHPの高速化を実現するものです。
サムネイル

Laravelのプロジェクトでファビコンを設定する【favi……

2023年11月21日
Laravelのプロジェクトにおいても同様にHTMLのlinkタグを使用してWebサイトにファビコンを設定します。あらかじめLaravelプロジェクト内のディレクトリにアップロードしたファビコンデータをlinkタグのパスをhref属性に設定すればファビコンが表示されます。
サムネイル

Laravel Breezeでログイン認証機能を実装する手順……

2023年08月08日
Laravel BreezeはLaravelのプロジェクトにログイン認証機能を実装することができるパッケージです。登録・ログイン・メール認証・パスワードリセット・登録内容の変更といった一通りの機能がコマンドだけで簡単に導入できます。
サムネイル

Laravelをインストールして開発環境構築する手順【Win……

2023年08月08日
LaravelはPHPのフレームワークの中でも特に人気のあるものの一つです。今回はWindowsPC(ローカル環境)にLaravelをインストールして開発環境を構築する手順を解説します。
サムネイル

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

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