<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0">
<style>
body {
width:90%;
margin: 24px auto;
}
div {
text-align: center;
}
table {
width: 70%;
margin: 24px auto;
}
</style>
</head>
<body>
<div>
<?php
//2020-01-01の変数
$MasterDate = date('Y-m-d',strtotime('2020-01-01'));
//曜日の配列化
$youbi = array(
"月",
"火",
"水",
"木",
"金",
"土",
"日"
);
for($i=0; $i<=11; $i++){
//月の配列
$montharray[] = array(date('n',strtotime("$MasterDate +$i month")));
}
//ページング構文
define('MAX','1');
$array_count = count($montharray) ;
$max_page = ceil($array_count / MAX-1);
if(!isset($_GET['page_id'])){
$now = 0;
} else {
$now = $_GET['page_id'];
}
$start_no = ($now - 1) * MAX;
$montharray = array_slice($montharray, $start_no, MAX, true);
echo "<table border='1'>";
//月のスタート位置カウント初期化
$count2 = 0;
if(isset($_GET['page_id'])){
$i = $_GET['page_id'];
} else {
$i = 0;
}
for($i; $i <= $now; $i++){
//月のカウント
$month = date('n',strtotime("$MasterDate +$i month"));
//月の日数を配列化
$MonthCount = array(date('t',strtotime("$MasterDate +$i month")));
//月の出力
echo "<tr><th colspan='7'>{$month}月</th></tr><tr>";
//曜日の出力
foreach($youbi as $val){
echo "<th>{$val}</th>";
}
echo "</tr><tr>";
//週の折り返しカウント
$count = 1;
//月のスタート位置設定※配列化しても良い
if($i == 0){
$c = -1;
} else if($i == 1){
$c = -4;
} else if($i == 2){
$c = -5;
} else if($i == 3){
$c = -1;
} else if($i == 4){
$c = -3;
} else if($i == 5){
$c = 1;
} else if($i == 6){
$c = -1;
} else if($i == 7){
$c = -4;
} else if($i == 8){
$c = 0;
} else if($i == 9){
$c = -2;
} else if($i == 10){
$c = -5;
} else if($i == 11){
$c = 0;
}
//日数の出力
for($c; $c<=$MonthCount[0]; $c++){
//月のスタート位置空テーブル出力
if($c <= 0 && $i == $now){
echo "<td></td>";
}
//空の後、正規位置スタート
if($c >= 1){
echo "<td>{$c}</td>";
}
//週の折り返し
if($count == 7){
echo "</tr><tr>";
$count = 0;
}
//週の折り返しカウント
$count++;
}
//月のスタート位置カウント
$count2++;
}
echo "</table>";
//ページング
// リンクをつけるかの判定
if($now >= 1){
echo '<a href=\'index-1.php?page_id='.($now -1).'\')>前へ </a>';
} else {
echo ' '. ' ';
}
// リンクをつけるかの判定
if($now < $max_page){
echo '<a href=\'index-1.php?page_id='.($now + 1). '\')> 次へ</a>';
} else {
echo ' ' . ' ';
}
?>
</div>
</body>
</html>
ページング付きカレンダー