スライドショー

【PHP入門】dateで曜日を取得する方法

PHPではdate関数を使用して曜日を取得することができます。

この記事では、

  • 曜日を取得する方法
  • 日本語で曜日を取得する方法
  • 英語で曜日を取得する方法
  • 指定日の曜日をmktime関数を使用して取得する方法
  • 指定日の曜日をstrtotime関数を使用して取得する方法

という基本的な内容から、などの応用的な使い方に関しても解説していきます。今回はそんなdateの曜日取得について、わかりやすく解説します!

曜日を取得するには

PHPで曜日を取得するためにはdate関数を使用し、引数に’w’を設定します。

date(‘w’);

date関数の引数に’w’を指定すると、曜日は以下の対応した曜日の番号が返されます。

日:0  月:1  火:2  水:3  木:4  金:5  土:6

また、date関数には曜日だけではなく、引数にさまざまなフォーマットを指定することが可能です。

date関数のフォーマットについては、以下の記事で詳しく解説しています。!

曜日を取得する方法

以下に曜日を取得する簡単な方法を記述します。

<?php

/*現在の日付の曜日の番号を出力する*/
$date = date('w');
echo $date;

?>
実行結果
5

サンプルでは、date関数の引数に'w'を指定して、本日の日時から曜日を取得しています。

執筆時点の曜日は金曜日なので金=5が返されます。

日本語で取得する

上述したようにdate関数の引数に’w’を指定すれば、曜日に対応した番号が取得することができます。

しかし、プログラムによっては曜日を番号ではなく日本語で取得したい場合もあります。曜日を日本語で取得するためには、番号に対応した曜日を格納した配列をあらかじめ作成しておく必要があります。

以下に、日本語で曜日を取得するサンプルを記述します。

<?php

//配列を使用し、要素順に(日:0〜土:6)を設定する
$week = [
  '日', //0
  '月', //1
  '火', //2
  '水', //3
  '木', //4
  '金', //5
  '土', //6
];

$date = date('w');

//日本語で曜日を出力
echo $week[$date] . '曜日';

?>
実行結果
金曜日

サンプルでは配列の要素順に日:0から土:6までの値を設定し、出力時にdate関数で取得した曜日番号を配列の要素数に設定して出力しています。

英語で取得する

英語で曜日を出力したい場合は、紹介したサンプルの配列の要素に英語で曜日を指定するだけで、日本語と同様に英語で出力することができます。

英語で曜日を取得するためには、配列を以下のように設定します。

//配列を使用し、要素順に(Sunday:0〜Saturday:6)を設定する
$week = [
  'Sunday', //0
  'Monday', //1
  'Tuesday', //2
  'Wednesday', //3
  'Thursday', //4
  'Friday', //5
  'Saturday', //6
];

指定日の曜日を取得する方法

ここでは、mktime関数とstrtotime関数を使用して、指定した日時から曜日を取得する方法を紹介します。

mktimeで取得する

指定した曜日を取得するためには、mktime関数を使用します。mtkime関数は、指定した日時のUNIXタイムスタンプを取得します。

以下にmtkime関数を使用して、指定した日時の曜日を取得する方法を記述します。

<?php

//指定日の曜日を取得する
$timestamp = mktime(0, 0, 0, 4, 1, 2017);
$date = date('w', $timestamp);

//配列を使用し、要素順に(日:0〜土:6)を設定する
$week = [
  '日', //0
  '月', //1
  '火', //2
  '水', //3
  '木', //4
  '金', //5
  '土', //6
];

//日本語で曜日を出力
echo $week[$date] . '曜日';

?>
実行結果
土曜日

サンプルではmktimeの引数に2017/4/1の日付を指定しています。

次にdate関数の第一引数に曜日を取得する’w’を指定し、第二引数にmktime関数で取得したタイムスタンプを指定しています。

2017/4/1は土曜日ですので、dateには6(土)が返されます。

strtotimeで取得する

strtotime関数を使用することでも、指定した日時から曜日を取得することが可能です。

strtotime関数は、mtkime関数同様に指定した日時のUNIXタイムスタンプを取得します。

mtkime関数との違いとして、strtotime関数は日時の文字列をそのまま引数に指定することができます。

以下にstrtotime関数を使用して、指定した日時の曜日を取得する方法記述します。

<?php
//指定日の曜日を取得する
$date = date('w', strtotime('20170402'));

//配列を使用し、要素順に(日:0〜土:6)を設定する
$week = [
  '日', //0
  '月', //1
  '火', //2
  '水', //3
  '木', //4
  '金', //5
  '土', //6
];

//日本語で曜日を出力
echo $week[$date] . '曜日';

?>
実行結果
日曜日

サンプルでは、date関数の第一引数に曜日を取得する’w’を指定し、第二引数にstrtotime関数を指定して引数に日付文字列’20170402’を指定しています。

2017/4/2は日曜日ですので、dateには0(日)が返されます。

ここで紹介したstrtotime関数の使い方については、以下の記事でも詳しく解説していますので、ぜひ参考にしてください!

date関数についてもっと詳しく知りたい方へ

date関数のさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここではPHPの曜日を取得する方法について、基本的な取得方法から、日本語・英語で取得する方法、日時を指定して曜日を取得する方法などを説明しました。

PHPで日付を扱う関数は種類がたくさんありますので、各関数の役割はしっかりと理解しておきましょう。もし、曜日を取得する方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。