第5回「日付を表示」PHPとHTMLで祝日入りカレンダーを作成

全体像 サンプル

こんにちは!
前回の記事書いてから1時間ほど、飯食って休憩したから頭さえてるわー

という事で、今回は今まで作ってきた表に日付を表示させていくぞ!
「この記事から読み始めた」という人も、下記のコードをコピペして「index.php」と名前をつけて保存してください。

今回も変更箇所のボリュームが多いので、この記事の一番下に、最終ソースを載せておきます。うまく動作しなかった場合はその最終ソースをコピペして[index.php]を上書きしてくださいー。

<?php

//曜日取得関数 引数は int 曜日の数字
function week_cquisition_int($week){
	if($week=="0"){
		$week_string = "(日)";
	}else if($week=="1"){
		$week_string = "(月)";
	}else if($week=="2"){
		$week_string = "(火)";
	}else if($week=="3"){
		$week_string = "(水)";
	}else if($week=="4"){
		$week_string = "(木)";
	}else if($week=="5"){
		$week_string = "(金)";
	}else if($week=="6"){
		$week_string = "(土)";
	}
	return $week_string;
}

//ページ読込前の設定部分

///////////////////////////////////
//$display_date の日付を変えるとその日のページに変わる & 変数初期化・設定
//////////////////////////////////
$get_display_date = $_GET['first_day_of_month'];
if($get_display_date == null){
	//$_GET['first_day_of_month'];がnullだった場合は本日の日付
	$display_date = date("Y-m-01");//表示日時 ページを開いた時に表示される月の最初の日付 例:2017-05-01 必ずその月の1日が指定される。このページは月で管理していているので、ページを開いた当日の日付ではなく、当日の月の1日を入れる。じゃないと3月31から1ヶ月引くと3月2日になるバグが発生するから
}else{
	//$_GET['first_day_of_month']入ってた場合はその日付
	$display_date = $get_display_date;
}
//表示されている日から一週間の曜日を、数値で配列化 表示されてる日が、$week_int_array[0] 次の日が $week_int_array[1]
//文字、例:日 月 火 水 木 金 土 というように配列化 $week_strings_array[] //カレンダーに曜日を表示するときに使う
//表示されている日から一週間を、Ymd例(20170508)こういった型で出力する $week_display_date_Ymd_array  htmeタグのid属性やname属性で使う
$week_d = $display_date;
$week_int_array = array();
$week_strings_array = array();
$week_display_date_Ymd_array = array();
for($i = 0; $i < 7; $i++){
	array_push($week_int_array, date("w",strtotime($week_d))); //配列に追加
	array_push($week_strings_array, mb_substr(week_cquisition_int($i),1,1)); //配列に追加 mb_substr()メソッドは文字を置き換えたり抜出するPHPの関数 参考サイト:http://cms.helog.jp/php/substr-multi-byte/
	array_push($week_display_date_Ymd_array,date("Ymd",strtotime($week_d)));//配列に追加
	
	$week_d = date("Y-m-d", strtotime($week_d.' +1 day'));//while文で回す為に$week_d変数を、1日インクリメントする
}
$display_day_array = array();//カレンダーに日を出力するための配列を初期化、表示されてる月の正確な日付が入ってます
$display_year = date("Y",strtotime($display_date));//ページを開いた時の年を代入 違う月のカレンダーを見ている場合はその年を代入
$display_month = date("m",strtotime($display_date));//ページを開いた時の月を代入 違う月のカレンダーを見ている場合はその月を代入
$display_day = date("j",strtotime($display_date));//月の最初である日付、1を代入
// checkdate()関数でその月の性格な日数を求める、参考サイト:https://php1st.com/1001/
while (checkdate($display_month, $display_day, $display_year)) {
    array_push($display_day_array,$display_day);
    $display_day++;//日付変数をインクリメント
}
$display_tb_name_array = array();//カレンダーのname属性を変わって表示させる配列を初期化 0行目の「水」と記載されてるとこなら、「name03」1行目の日曜日なら「name10」2行目の土曜日なら「name26」3行目の月曜日なら「name31」というふうに「"name" 行数 曜日の数値型」で配列に代入します。
$lines = 0;//下記while文で使うカレンダーの行数を入れる変数
$w = 0;//下記while文で使う曜日の数値化型インクリメント用変数
for($i = 0; $i <52; $i++){//縦7、横7のデザインのカレンダーだから多めに繰り返して作っておく
	if($i==7 OR $i==14 OR $i==21 OR $i==28 OR $i==35 OR $i==42 OR $i==49){//行数は7回ずつくりかえした時に+1してインクリメントする
		$lines++;
		$w = 0;
	}
	array_push($display_tb_name_array,"name".$lines.$w);
	$w++;//曜日数値をインクリメント
}
?>

<html>
<head>
</head>
<body>

<h2>月間スケジュール</h2>
<!-- 何月を表示 -->
<div>
<!-- 一ヶ月前のページへのリンク -->
<a href="index.php?first_day_of_month=<?php echo date('Y-m-01',strtotime("-1 month",strtotime($display_date))); ?>"><<</a>
<!-- /一ヶ月前のページへのリンク -->
<?php echo date('Y-n',strtotime($display_date)); ?>
<!-- 一ヶ月後のページへのリンク -->
<a href="index.php?first_day_of_month=<?php echo date('Y-m-01',strtotime("+1 month",strtotime($display_date))); ?>">>></a>
<!-- /一ヶ月後のページへのリンク -->
<br/>
<!-- リストフォームボックス -->
<div>

<!-- カレンダー部分 -->
<div>

<table border="1">
<!-- 曜日表示部分 --><!-- $week_strings_array[]配列は、[]内に0~6の数値入れることで曜日を出力する配列、このファイル内で定義してる配列 -->
<?php $i=0; ?>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[0]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[1]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[2]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[3]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[4]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[5]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[6]; ?></td>
</tr>
<!-- /曜日表示部分 -->
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>>1</td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>>2</td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>>3</td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>>4</td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>>5</td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
</tr>
<?php //表が縦7行必要な時は、行を追加します。
if(count($display_day_array) > 30 AND date("w",strtotime($display_date)) >= 5){ //月の日数が30日以上で、且つ、月の最初の1日が金曜か土曜から始まっていたら
?>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>>6</td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
</tr>
<?php 
}
?>
</table>

</div>
<!-- /カレンダー部分 -->


</body>
</html>

この「index.php」ファイルをhtdocsやサーバーにアップロードすると

こういった感じに表示されるはずです。

では、ここからプログラムを追記・変更していきます。
107行目から115行目を削除して、下記のコードを代わりに書き換えます。

<!-- 日付表示部分 -->
<?php
$ii=0;//下記のカレンダー日付出力で使うインクリメント変数
$display_calendar_flag = 0;//下記のカレンダー日付出力で使うフラグ変数初期化 ※月の初日1日目より前をを表示させない為だけに使う変数
?>
<tr><?php //日付はどうやって出力してるかというと、tbのname属性は「"name" カレンダーの行数 曜日数字」だから、
	//初日1日は一行目に出したいから、「"name1" 初日1日の曜日数値」を比較して合ってたら日付を入れてる。
	//ここを編集するときはインクリメントとか細かいところに注意する事。
	//それで一回入れたらフラグを立ててそれ以降はフラグで判断して日付を入れてる ?>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>

何をしているのかというと、書き換えた場所はカレンダーの1行目になります。月の初日1日って、カレンダーの1行目にきますよね。それの判断をして出力しています。

・日付はどうやって出力してるかというと、tbのname属性は「”name” カレンダーの行数 曜日数字」だから、
初日1日は一行目に出したいから、「”name1″ 初日1日の曜日数値」を比較して合ってたら日付を入れてる。
・ここを編集するときはインクリメントとか細かいところに注意する事。
・それで一回入れたらフラグを立ててそれ以降はフラグで判断して日付を入れてる


保存してブラウザで確認するとこう1行目だけが途中から表示されていると思います。

では今、書き換えた箇所より下にある””タグでくくられているもの全て、下記コードに書き換えてください。

変更前
<td name=<?php echo $display_tb_name_array[$i];$i++; ?>></td>
↓↓
変更後
<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>

108行の””から始まり、162行目の最後の最後まで””タグの行を、上記のように書き換えます。


ブラウザで確認すると、上記のように1ヶ月の日付が表示されます。

「正直、同じ文章ならfor文で繰り返して書けばいいだろよボケカスアホ3流プログラマーが」って思った?笑

前の記事でも書いたけど、それは他の人が見たときに、分かりにくく汎用性がないので、俺は使わない。
自分だけしか分からないプログラム書く奴いるけど、そういう奴らは勝手にやってろよゴミって俺は思ってる。
つまり、オレ流、プログラマー歴10年やってこれたのもオレ流だったからだと思う。
まっ、オレの考え方が気に食わないなら、もうこのサイト見ないほうがいいと思う
オレについてくる奴にだけしかいらねーからなー

という事で、今回もおつかれさん!ゆっくり休んでくれー。

今回の記事は、これで終わりです。次の記事では「祝日の日付にはそれを名前をいれていくぞ」

んでは最後に今回の記事の最終オープンソース

<?php

//曜日取得関数 引数は int 曜日の数字
function week_cquisition_int($week){
	if($week=="0"){
		$week_string = "(日)";
	}else if($week=="1"){
		$week_string = "(月)";
	}else if($week=="2"){
		$week_string = "(火)";
	}else if($week=="3"){
		$week_string = "(水)";
	}else if($week=="4"){
		$week_string = "(木)";
	}else if($week=="5"){
		$week_string = "(金)";
	}else if($week=="6"){
		$week_string = "(土)";
	}
	return $week_string;
}

//ページ読込前の設定部分

///////////////////////////////////
//$display_date の日付を変えるとその日のページに変わる & 変数初期化・設定
//////////////////////////////////
$get_display_date = $_GET['first_day_of_month'];
if($get_display_date == null){
	//$_GET['first_day_of_month'];がnullだった場合は本日の日付
	$display_date = date("Y-m-01");//表示日時 ページを開いた時に表示される月の最初の日付 例:2017-05-01 必ずその月の1日が指定される。このページは月で管理していているので、ページを開いた当日の日付ではなく、当日の月の1日を入れる。じゃないと3月31から1ヶ月引くと3月2日になるバグが発生するから
}else{
	//$_GET['first_day_of_month']入ってた場合はその日付
	$display_date = $get_display_date;
}
//表示されている日から一週間の曜日を、数値で配列化 表示されてる日が、$week_int_array[0] 次の日が $week_int_array[1]
//文字、例:日 月 火 水 木 金 土 というように配列化 $week_strings_array[] //カレンダーに曜日を表示するときに使う
//表示されている日から一週間を、Ymd例(20170508)こういった型で出力する $week_display_date_Ymd_array  htmeタグのid属性やname属性で使う
$week_d = $display_date;
$week_int_array = array();
$week_strings_array = array();
$week_display_date_Ymd_array = array();
for($i = 0; $i < 7; $i++){
	array_push($week_int_array, date("w",strtotime($week_d))); //配列に追加
	array_push($week_strings_array, mb_substr(week_cquisition_int($i),1,1)); //配列に追加 mb_substr()メソッドは文字を置き換えたり抜出するPHPの関数 参考サイト:http://cms.helog.jp/php/substr-multi-byte/
	array_push($week_display_date_Ymd_array,date("Ymd",strtotime($week_d)));//配列に追加
	
	$week_d = date("Y-m-d", strtotime($week_d.' +1 day'));//while文で回す為に$week_d変数を、1日インクリメントする
}
$display_day_array = array();//カレンダーに日を出力するための配列を初期化、表示されてる月の正確な日付が入ってます
$display_year = date("Y",strtotime($display_date));//ページを開いた時の年を代入 違う月のカレンダーを見ている場合はその年を代入
$display_month = date("m",strtotime($display_date));//ページを開いた時の月を代入 違う月のカレンダーを見ている場合はその月を代入
$display_day = date("j",strtotime($display_date));//月の最初である日付、1を代入
// checkdate()関数でその月の性格な日数を求める、参考サイト:https://php1st.com/1001/
while (checkdate($display_month, $display_day, $display_year)) {
    array_push($display_day_array,$display_day);
    $display_day++;//日付変数をインクリメント
}
$display_tb_name_array = array();//カレンダーのname属性を変わって表示させる配列を初期化 0行目の「水」と記載されてるとこなら、「name03」1行目の日曜日なら「name10」2行目の土曜日なら「name26」3行目の月曜日なら「name31」というふうに「"name" 行数 曜日の数値型」で配列に代入します。
$lines = 0;//下記while文で使うカレンダーの行数を入れる変数
$w = 0;//下記while文で使う曜日の数値化型インクリメント用変数
for($i = 0; $i <52; $i++){//縦7、横7のデザインのカレンダーだから多めに繰り返して作っておく
	if($i==7 OR $i==14 OR $i==21 OR $i==28 OR $i==35 OR $i==42 OR $i==49){//行数は7回ずつくりかえした時に+1してインクリメントする
		$lines++;
		$w = 0;
	}
	array_push($display_tb_name_array,"name".$lines.$w);
	$w++;//曜日数値をインクリメント
}
?>

<html>
<head>
</head>
<body>

<h2>月間スケジュール</h2>
<!-- 何月を表示 -->
<div>
<!-- 一ヶ月前のページへのリンク -->
<a href="index.php?first_day_of_month=<?php echo date('Y-m-01',strtotime("-1 month",strtotime($display_date))); ?>"><<</a>
<!-- /一ヶ月前のページへのリンク -->
<?php echo date('Y-n',strtotime($display_date)); ?>
<!-- 一ヶ月後のページへのリンク -->
<a href="index.php?first_day_of_month=<?php echo date('Y-m-01',strtotime("+1 month",strtotime($display_date))); ?>">>></a>
<!-- /一ヶ月後のページへのリンク -->
<br/>
<!-- リストフォームボックス -->
<div>

<!-- カレンダー部分 -->
<div>

<table border="1">
<!-- 曜日表示部分 --><!-- $week_strings_array[]配列は、[]内に0~6の数値入れることで曜日を出力する配列、このファイル内で定義してる配列 -->
<?php $i=0; ?>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[0]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[1]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[2]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[3]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[4]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[5]; ?></td>
	<td name=<?php echo $display_tb_name_array[$i];$i++; ?>><?php echo $week_strings_array[6]; ?></td>
</tr>
<!-- 日付表示部分 -->
<?php
$ii=0;//下記のカレンダー日付出力で使うインクリメント変数
$display_calendar_flag = 0;//下記のカレンダー日付出力で使うフラグ変数初期化 ※月の初日1日目より前をを表示させない為だけに使う変数
?>
<tr><?php //日付はどうやって出力してるかというと、tbのname属性は「"name" カレンダーの行数 曜日数字」だから、
	//初日1日は一行目に出したいから、「"name1" 初日1日の曜日数値」を比較して合ってたら日付を入れてる。
	//ここを編集するときはインクリメントとか細かいところに注意する事。
	//それで一回入れたらフラグを立ててそれ以降はフラグで判断して日付を入れてる ?>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>
<?php //表が縦7行必要な時は、行を追加します。
if(count($display_day_array) > 30 AND date("w",strtotime($display_date)) >= 5){ //月の日数が30日以上で、且つ、月の最初の1日が金曜か土曜から始まっていたら
?>
<tr>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
	<td name=<?php echo $display_tb_name_array[$i];?>><?php if($display_calendar_flag == 1){echo $display_day_array[$ii];$i++;$ii++;}elseif($display_calendar_flag == 0){if($display_tb_name_array[$i] == "name1".date("w",strtotime($display_date))){echo $display_day_array[$ii];$display_calendar_flag = 1;$ii++;}$i++;} ?></td>
</tr>
<?php 
}
?>
<!-- /日付表示部分 -->
</table>

</div>
<!-- /カレンダー部分 -->


</body>
</html>

,,

Comments

  • 7行目が必要なのに表示されなかったので、160行目をcount($display_day_array) > 30 → count($display_day_array) >= 30 にしたら出来ました。

    • そうなんですね! しばらく解決できて良かったです。

      ちなみに、PHPのバージョンを7.3へアップしたところ、count 関数 がうまく動かなくなりましたので、
      この記事は、一旦、閉鎖しようと思います。

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です