PHPプログラミング

レシピ

日付・時刻

指定した日付の曜日を取得する

指定した特定の日付から、その日が何曜日であるかを取得する方法について解説します。

この記事のポイント

  • 2つの取得方法がある
  • 曜日以外にも日付に関連した処理が必要かで、どちらの方法を使うか判断できる

目次

曜日を取得する

曜日の取得にはdate関数、またはgetdate関数を使用します。
まずはdate関数を使った方法から解説します。

date関数は第1パラメータの日付フォーマットに「w」を指定すると、日付の曜日を返します。
0」の日曜から始まり、「1」は月曜、「2」は火曜…「6」は土曜となります。

この値を利用し、次のようにswitch文などで曜日を判定することができます。

コード例

// 日付からタイムスタンプを取得
$timestamp = mktime(0,0,0,1,6,2019);

// 曜日の値を取得
$week = date("w", $timestamp);

switch($week) {
	
	case 0:
		$res = "日曜日";
		break;

	case 1:
		$res = "月曜日";
		break;

	case 2:
		$res = "火曜日";
		break;
	
	case 3:
		$res = "水曜日";
		break;
	
	case 4:
		$res = "木曜日";
		break;
	
	case 5:
		$res = "金曜日";
		break;
	
	case 6:
		$res = "土曜日";
		break;
}

// 曜日を出力
echo $res;

出力結果

日曜日

上記コードでは、最初に日付を指定してタイムスタンプを取得します。

$timestamp = mktime(0,0,0,1,6,2019);

mktime関数は指定した日付のタイムスタンプを生成する関数です。
6つのパラメータを取り、前から順に「時」「分」「秒」「月」「日」「年」を指定します。
今回は日付のみで「時」「分」「秒」は使用しないため、前から3つのパラメータは「0」を指定します。

今回のコード例では「2019年1月6日」の日付の曜日を取得するため、「1」「6」「2019」の順に指定します。
もし2000年7月30日の曜日を取得したい場合は、「mktime(0,0,0,7,30,2000)」のようになります。

続いて、date関数で曜日の値を取得します。

$week = date("w", $timestamp);

第1パラメータに「w (小文字)」、第2パラメータに先ほど取得したタイムスタンプを渡すと、曜日の「0」〜「6」の値を取得することができます。

続いてswitch文で曜日の数値を確認し、曜日の文字列を取得します。

switch($week) {
	
	case 0:
		$res = "日曜日";
		break;

	case 1:
		$res = "月曜日";
		break;

	case 2:
		$res = "火曜日";
		break;
	
	case 3:
		$res = "水曜日";
		break;
	
	case 4:
		$res = "木曜日";
		break;
	
	case 5:
		$res = "金曜日";
		break;
	
	case 6:
		$res = "土曜日";
		break;
}

$resに曜日が入っているので、最後に出力して終了です。

getdate関数で曜日を取得する

曜日を取得する別の方法として、getdate関数を使用する方法があります。
とは言え、date関数とほぼ同じ流れで取得することができます。

コード例

// 日付からタイムスタンプを取得
$timestamp = mktime(0,0,0,1,5,2019);

// 日付の情報を取得
$date = getdate($timestamp);

switch($date["wday"]) {
	
	case 0:
		$res = "日曜日";
		break;

	case 1:
		$res = "月曜日";
		break;

	case 2:
		$res = "火曜日";
		break;
	
	case 3:
		$res = "水曜日";
		break;
	
	case 4:
		$res = "木曜日";
		break;
	
	case 5:
		$res = "金曜日";
		break;
	
	case 6:
		$res = "土曜日";
		break;
}

// 曜日を出力
echo $res;

getdate関数はタイムスタンプを渡すと、日付の情報を配列形式で返します。
曜日の数値は「wday」から取得できるため、この値をそのままswitch文に渡して何曜日かを取得する流れになります。

date関数を使った方法との使い分けについては、getdate関数だと日付の情報全般を一括で取得するため、曜日以外にも日付の処理を行うかどうかで判断することができます。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。