データベースのdatetime形式の日付等々から曜日を取得する平成30年 9月 16日 作成

0081

概略

datetime形式の日付等々から曜日を取得したい。

また、datetime形式以外に、年・月・日が別々の変数に格納されている場合の曜日算出についても学ぶ。

手段

「date関数」・「mktime関数」にて実現可能。

この機会に「DateTimeクラス」についても少し学んでみる。

実装方法

date・mktime関数

<?php
	// 日付が文字列として変数に格納されている場合
	
	// タイムゾーンを日本時間(東京)に設定する
	date_default_timezone_set('Asia/Tokyo');
	
	$week = array("日", "月", "火", "水", "木", "金", "土");
	
	$date = "2018-06-13";
	$week_num = date("w", strtotime($date));
	
	echo $week[$week_num];
	
	// 結果
	水
	
	
	// 年・月・日が別々の変数に格納されている場合
	
	date_default_timezone_set('Asia/Tokyo');
	
	$week = array("日", "月", "火", "水", "木", "金", "土");
	
	$year = 2018;
	$month = 06;
	$day = 13;
    
	$time = mktime(0, 0, 0, $month, $day, $year);
	$w = date("w", $time);
	
	echo $week[$w];
	
	// 結果
	水
?>

DateTimeクラス

<?php
	// 日付が文字列として変数に格納されている場合
	
	date_default_timezone_set('Asia/Tokyo');
	
	$week = array("日", "月", "火", "水", "木", "金", "土");
	
	$date = "2018-06-13";
	$datetime = new DateTime($date);
	$w = (int)$datetime->format("w");
	echo $week[$w];
	
	// 結果
	水
	
	
	// 年・月・日が別々の変数に格納されている場合
	
	date_default_timezone_set('Asia/Tokyo');
	
	$week = array("日", "月", "火", "水", "木", "金", "土");
	
	$year = 2018;
	$month = 06;
	$day = 13;
    
	$datetime = new DateTime();
	$datetime->setDate($year, $month, $day);
	$w = (int)$datetime->format("w");
	echo $week[$w];
	
	// 結果
	水
?>

考察

曜日は「0~6」の数字の形で返ってくるので、日本語表記の「日~土」にするにはそれに対応したの配列変数を作っておくと便利。


取得する曜日は、タイムゾーンの影響を受けるので、「php.ini」や「date_default_timezone_set()」での設定を忘れない様に。

最後までお読み下さり ありがとうございました。記事はここ迄です。

尚、本記事は作成から「5年以上」経過しています。

記事作成当時と現在の状況等により内容が適切でない場合があります。また、リンク切れが生じている場合もあります事を予めご了承下さい。

お気に入りに登録しますとお気に入り記事を一元管理でき、再度閲覧したい場合等 容易に記事を探し出す事ができますのでご活用下さい。

下段にはコメントを掲載しております。

広告バナー

コメント

頂いたコメントを下記に掲載しております。更に下部にはコメント投稿フォームを設けております。

注意事項を確認・了承した上、コメント投稿お願いいたします。

注意事項に該当するコメントにつきましては、事前告知なしに投稿したコメントの削除を行う場合があります。

予めご了承下さい。

  • 記事内容と無関係なコメント
  • 公序良俗に反するコメント
  • 個人情報や法令違反を含むコメント
  • その他、管理者が不適切と判断したコメント

現在 頂いているコメントはありません

返信先(コメント管理番号)コメントに対し返信する場合のみ
お名前・ハンドルネーム2~32文字内で入力下さい
メールアドレス公開される事はありません
電話番号半角数字+ハイフンで入力下さい
コメント全角500文字内で入力下さい