[PHP]日付から日本語表記の曜日を取得する

php_program_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

PHPにおける曜日の取得

PHPにて日本語表記の曜日を取得する方法を紹介します。

PHPでは英語表記の曜日である「’sunday’,’monday’」やその短縮表記である「’sun’,’mon’」は定義されていますが、日本語表記の定義はありません。ただ曜日は簡単に求めることができるためサンプルプログラムを含めて記述します。

 

曜日の取得方法

PHPで日本語表記の曜日を取得するとき、英語表記を取得しても使いづらいです。そのため定義されているフォーマット文字には、曜日を数字で返す「w」と「N」があります。

そこでサンプルプログラムにも記載していますが、日本語表記の配列を準備して、曜日を数字として取得してから対応する曜日を返します。

format文字:w
説明:曜日。数値。
返り値:0 (日曜)から 6 (土曜)

format文字:N
説明:ISO-8601 形式の、曜日の数値表現 (PHP 5.1.0 で追加)。
返り値:1(月曜日)から 7(日曜日)

参考URL
date関数http://php.net/manual/ja/function.date.php

 

サンプルプログラム

サンプルプログラムとして。「date関数」を使用したものと「DateTimeクラス」を使用したものの2種類を記載します。結果は同じとなるため、ご利用中の環境に応じてお好きなほうをご使用ください。

date関数を使用した曜日の取得

<?php

//今日の曜日を取得する
echo 'today:' . getWeekStr(date('H-m-d')) . PHP_EOL;

//指定した日付の曜日を取得する
echo '2018-11-25:' . getWeekStr('2018-11-25') . PHP_EOL;

function getWeekStr($date) {
	$datetime = date('w',strtotime($date));
	$weekStr = ["日", "月", "火", "水", "木", "金", "土"];
	$w = (int)$datetime;
	return $weekStr[$w];
}

DateTimeクラスを利用した曜日の取得

<?php

//今日の曜日を取得する
echo 'today:' . getWeekStr(date('H-m-d')) . PHP_EOL;

//指定した日付の曜日を取得する
echo '2018-11-25:' . getWeekStr('2018-11-25') . PHP_EOL;

function getWeekStr($date) {
	$datetime = new DateTime($date);
	$weekStr = ["日", "月", "火", "水", "木", "金", "土"];
	$w = (int)$datetime->format('w');
	return $weekStr[$w];
}

 

サンプルプログラムの出力結果

どちらのサンプルプログラムでも同じ結果が出るため、出力結果は1つのみ記載します。

[root@localhost]$ php getWeek.php
today:土
2018-11-25:日

 

 

ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。

created by Rinker
徳丸 浩(著)
ページ数: 688ページ
出版社:SBクリエイティブ
発売日:2018/06/21

出典:amazon