ホーム > PHPサンプル > 日付系 > PHP 曜日を取得<現在/任意の日付>
PHPサンプル

UPDATE:2019年06月24日

PHP 曜日を取得<現在/任意の日付>

PHP 曜日を取得<現在/任意の日付> | wepicks!
PHP5 PHP7

date() と strtotime() の組み合わせで自由に曜日を取得

PHP で現在の曜日を得るには、date()関数DateTimeクラス を使用します。任意の日付(指定日)の曜日を得る場合は、date() と strtotime()mktime() を組み合わせて取得することが出来ます。DateTimeクラスは日付を指定することが出来るので、指定した任意の日付の曜日を取得できます。では実際に様々な曜日を取得してみましょう。
タイムゾーンの指定
php.ini に記述する場合
date.timezone = Asia/Tokyo
スクリプトに記述する場合
<?php date_default_timezone_set ('Asia/Tokyo'); ?>
※日本時間に合わせます。タイムゾーンに誤りがあると日付系の関数やクラスでエラーが起こる場合があります。
使用する関数やクラス

書式 date()
日時の文字列 = date('日付/時刻フォーマット文字列' [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日時となる)
//返り値は文字列(string)
date() が理解できる日付/時刻フォーマット文字列

書式 DateTimeクラス
オブジェクト = new DateTime(['英文形式 OR 日付/時刻のフォーマット文字列']);
//[ ]は省略可能です。
DateTimeクラス が理解できる英文形式フォーマット文字列
DateTimeクラス が理解できる日付/時刻のフォーマット文字列
DateTime format()メソッド が理解できるフォーマット文字列

書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime('英文形式 OR 日付/時刻 フォーマット文字列');
//返り値は数値(int)、失敗時は FALSE を返す
strtotime() が理解できる英文形式フォーマット文字列
strtotime() が理解できる日付/時刻のフォーマット文字列

書式 mktime()
指定日時のUNIXタイムスタンプ = mktime(時, 分, 秒, 月, 日, 年);
//返り値は数値(int)、失敗時は FALSE を返す

サンプル


曜日を取得<本日(現在)>

本日曜日を取得してみましょう。

date() で取得

date()関数 は、指定した日付や時刻のフォーマット文字列から日時や曜日の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列'); 」。オプションでUNIXタイムスタンプを指定すると、指定したタイムスタンプに合わせた日時や曜日の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列', UNIXタイムスタンプ); 」。タイムスタンプを省略すると現在日時となります。

date() 曜日のフォーマット文字列

取得内容フォーマット文字説明
曜日DMon~Sun3文字のテキスト形式
lSunday~Saturdayフルスペル形式
N1~7数字 1(月曜) から 7(日曜)
w0~6数字 0(日曜) から 6(土曜)
W1数字 月曜日に始まる年単位の週番号

その他の date() のフォーマット文字列は、date() が理解できる日付/時刻フォーマット文字列 をご覧下さい。

現在の曜日を取得

date() で現在の曜日を取得してみます。フォーマットに合わせて様々な形式で曜日を出力します。

実行日時 2019-01-01(火曜日) の場合

結果は

・3文字のテキスト形式:Tue
・フルスペル形式:Tuesday
・数値。1(月)から 7(日):2
・数値。0 (日) から 6 (土):2
・月曜日に始まる年単位の週番号:01

となります。

現在の曜日を日本語で取得する

簡単な関数を作成して、引数に date('w') を利用することで、日本語で曜日を取得します。

実行日時 2019-01-01(火曜日) の場合、結果は

火曜日

となります。

DateTimeクラス で 曜日 を取得

DateTimeクラスは様々な日付や時刻、曜日を表現できるクラスです。DateTimeクラスを呼び出し、オブジェクト(インスタンス)を作成します「 オブジェクト = new DateTime(); 」。DateTimeクラスを呼び出す際に日付や時刻を指定することも出来ます「 オブジェクト = new DateTime('日付/時刻のフォーマット文字列'); 」。省略した場合は、現在の日時や曜日になります。オブジェクトのformat()メソッドは、指定した日付や時刻のフォーマット文字列から日時や曜日の文字列を返します「 日時の文字列 = オブジェクト->format('日付/時刻のフォーマット文字列'); 」。成功すると日時の文字列を返し、失敗すると FALSE を返します。format()メソッドで指定する日時のフォーマット文字列はdate()関数で指定するフォーマットと同じです。
DateTime format()メソッド が理解できるフォーマット文字列

DateTimeクラス format()メソッド の曜日フォーマット文字列

取得内容フォーマット文字説明戻り値の例
曜日D3文字のテキスト形式Mon~Sun
lフルスペル形式Sunday~Saturday
N数字1(月曜) から 7(日曜)
w数字0(日曜) から 6(土曜)
W数字月曜日に始まる年単位の週番号
$objDateTime = new DateTime();
echo $objDateTime->format('D');//Wed
echo $objDateTime->format('l');//Wednesday
echo $objDateTime->format('N');//3
echo $objDateTime->format('w');//3
echo $objDateTime->format('W');//21

現在の曜日を取得

DateTimeクラス format()メソッド で現在の曜日を取得します。フォーマット文字列に合わせて曜日の文字列が出力されます。
実行日時 2019-01-01(火曜日) の場合

結果は

・3文字のテキスト形式:Tue
・フルスペル形式:Tuesday
・数値。1(月)から 7(日):2
・数値。0 (日) から 6 (土):2
・月曜日に始まる年単位の週番号:01

となります。

DateTimeクラス 現在の曜日を日本語で取得する

DateTimeクラスでも、日本語で曜日を取得してみましょう。

曜日を取得<本日(現在)から+何日後 -何日前>

本日から+1日後の曜日

実行日時 2019-01-01(火曜日) の場合

date() + strtotime() で取得

※マイナス を指定すれば昨日
結果は

・フルスペル形式:Wednesday

となります。

date() + mktime() で取得

※マイナス を指定すれば昨日
結果は

・フルスペル形式:Wednesday

となります。

DateTimeクラス で取得

※マイナス を指定すれば昨日
結果は

・フルスペル形式:Wednesday

となります。

本日から+1週間後の曜日

実行日時 2019-01-01(火曜日) の場合

date() + strtotime() で取得

※マイナス を指定すれば先週
結果は

・フルスペル形式:Tuesday

となります。

date() + mktime() で取得

※マイナス を指定すれば先週
結果は

・フルスペル形式:Tuesday

となります。

DateTimeクラス で取得

※マイナス を指定すれば先週
結果は

・フルスペル形式:Tuesday

となります。

本日から+1カ月後の曜日

実行日時 2019-01-01(火曜日) の場合

date() + strtotime() で取得

※マイナス を指定すれば先月
結果は

・フルスペル形式:Friday

となります。

date() + mktime() で取得

※マイナス を指定すれば先月
結果は

・フルスペル形式:Friday

となります。

DateTimeクラス で取得

※マイナス を指定すれば先月
結果は

・フルスペル形式:Friday

となります。

本日から+1年後の曜日

実行日時 2019-01-01(火曜日) の場合

date() + strtotime() で取得

※マイナス を指定すれば去年
結果は

・フルスペル形式:Wednesday

となります。

date() + mktime() で取得

※マイナス を指定すれば去年
結果は

・フルスペル形式:Wednesday

となります。

DateTimeクラス で取得

※マイナス を指定すれば去年
結果は

・フルスペル形式:Wednesday

となります。

本日から+1秒、+2分、+3時間、+4日、+5カ月、+6年後の曜日

実行日時 2019-01-01(火曜日) の場合

date() + strtotime() で取得

結果は

・フルスペル形式:Thursday

となります。

date() + mktime() で取得

結果は

・フルスペル形式:Thursday

となります。

DateTimeクラス で取得

結果は

・フルスペル形式:Thursday

となります。

曜日を取得<任意の日付(指定日)>

任意の日付(指定日)の曜日を得る場合は、date()strtotime()mktime() を組み合わせて取得することが出来ます。また、DateTimeクラスでも取得したい日時を直接指定して該当日の曜日を取得することが出来ます。

date() + strtotime() で取得

指定日 2020-01-01(水曜日) の場合

結果は

・3文字のテキスト形式:Wed
・フルスペル形式:Wednesday
・数値。1(月)から 7(日):3
・数値。0 (日) から 6 (土):3
・月曜日に始まる年単位の週番号:01

となります。

date() + mktime() で取得

指定日 2020-01-01(水曜日) の場合

結果は

・3文字のテキスト形式:Wed
・フルスペル形式:Wednesday
・数値。1(月)から 7(日):3
・数値。0 (日) から 6 (土):3
・月曜日に始まる年単位の週番号:01

となります。

DateTimeクラス で取得

指定日 2020-01-01(水曜日) の場合

結果は

・3文字のテキスト形式:Wed
・フルスペル形式:Wednesday
・数値。1(月)から 7(日):3
・数値。0 (日) から 6 (土):3
・月曜日に始まる年単位の週番号:01

となります。

曜日を取得<任意の日付(指定日)から+何日後-何日前>

任意の日付(指定日)から+1日後の曜日

date() + strtotime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば昨日
結果は

・フルスペル形式:Thursday

となります。

date() + mktime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば昨日
結果は

・フルスペル形式:Thursday

となります。

DateTimeクラス で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば昨日
結果は

・フルスペル形式:Thursday

となります。

任意の日付(指定日)から+1週間後の曜日

date() + strtotime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば先週
結果は

・フルスペル形式:Wednesday

となります。

date() + mktime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば先週
結果は

・フルスペル形式:Wednesday

となります。

DateTimeクラス で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば先週
結果は

・フルスペル形式:Wednesday

となります。

任意の日付(指定日)から+1カ月後の曜日

date() + strtotime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば先月
結果は

・フルスペル形式:Saturday

となります。

date() + mktime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば先月
結果は

・フルスペル形式:Saturday

となります。

DateTimeクラス で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば先月
結果は

・フルスペル形式:Saturday

となります。

任意の日付(指定日)から+1年後の曜日

date() + strtotime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば去年
結果は

・フルスペル形式:Friday

となります。

date() + mktime() で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば去年
結果は

・フルスペル形式:Friday

となります。

DateTimeクラス で取得

指定日 2020-01-01(水曜日) の場合

※マイナス を指定すれば去年
結果は

・フルスペル形式:Friday

となります。

任意の日付(指定日)から+1秒、+2分、+3時間、+4日、+5カ月、+6年後の曜日

date() + strtotime() で取得

指定日 2020-01-01(水曜日) の場合

結果は

・フルスペル形式:Friday

となります。

date() + mktime() で取得

指定日 2020-01-01(水曜日) の場合

結果は

・フルスペル形式:Friday

となります。

DateTimeクラス で取得

指定日 2020-01-01(水曜日) の場合

結果は

・フルスペル形式:Friday

となります。


タグ(=記事関連ワード)

タグ: , ,

日付

投稿日:2019年6月13日
最終更新日:2019年06月24日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpsample-date-dayofweek/trackback/

page top