PHP 管理カレンダー weekly-manager.php ソース

f:id:toshi-n:20190412205108p:plain

↑ 現在の作業画面です。

 

ソースコード

---------------

 

<?php

ini_set('display_errors', 1);

require_once('data/db_info.php');

//エスケープ処理
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, "UTF-8");
}

$arr_check_in = array();
$arr_room_number = array();
$arr_index = 0;


/*---------------- 接続処理 ----------------*/
try {

// new PDO(データソース、ユーザー名、パスワード)
$s = new PDO("mysql:host=$SERV;dbname=$DBNM;", $USER, $PASS);

// データの取得
$re = $s->query("select check_in,room_number from user_f01");
 
while ($row = $re->fetch()) {
/*
print $row[0] . "\n";
print $row[1] . "\n";
*/

$arr_check_in[$arr_index] = $row['check_in'];
$arr_room_number[$arr_index] = $row['room_number'];

print $arr_check_in[$arr_index] . "\n";
print $arr_room_number[$arr_index] . "\n";

$arr_index++;
}

} catch (PDOException $e) {
// エラー処理
print "エラー内容は" . $e->getMessage();
}



/*------------------- 週間カレンダー処理 ------------------*/

/*--- 本日の取得 ---*/
function getToday($date = 'Y-m-d') {

$today = new Datetime();
return $today->format($date);

}

/*--- 本日かどうかをチェック ---*/
function isToday($year, $month, $day) {
 
$today = getToday('Y-n-j'); // n = 月 (1or2桁) j = 日 (1or2桁)

if($today == $year . "-" . $month . "-" . $day) {

return true;
}

return false;
}

/*--- 今週の日曜日の日付を返す ---*/
function getSunday() {

$today = new DateTime();
$w = $today->format('w'); // 曜日取得
$ymd = $today->format('Y-m-d'); // 今日の 年-月-日 取得

$next_prev = new DateTime();
$next_prev->modify("-{$w}day");

return $next_prev->format('Ymd');

}

/*--- 今週の月曜日を返す ---*/
function getMonday() {

$today = new DateTime();
$w = $today->format('w');
$ymd = $today->format('Y-m-d');

if($w == 0) {
$d = 6;
} else {
$d = $w - 1;
}

$next_prev = new DateTime();
$next_prev->modify("-{$d}day");

return $next_prev->format('Ymd');

}

/*--- N日(週)+か-する関数 --- */
function getNthDay($year, $month, $day, $n) {

$next_prev = new DateTime($year . "-" . $month . "-" . $day);
$next_prev->modify($n);

return $next_prev->format('Ymd');

}

/*--- 週間カレンダーの表示 --- */
if(isset($_GET['date'])) {
// 年月日取得
$year_month_day = $_GET['date'];

} else {

// 今週の 月曜日取得
$year_month_day = getMonday();
}

// 年月日に変数で取得
$year = substr($year_month_day, 0, 4);
$month = substr($year_month_day, 4,2);
$day = substr($year_month_day, 6,2);

// 書式設定
$month = sprintf("%01d", $month);
$day = sprintf("%01d", $day);

// 1週間後
$next_week = getNthDay($year, $month, $day, '+1 week');
// 1週間前
$prev_week = getNthDay($year, $month, $day, '-1 week');

// 1日後 〜 6日後

$day_1 = getNthDay($year, $month, $day, '+1 days');
$day_2 = getNthDay($year, $month, $day, '+2 days');
$day_3 = getNthDay($year, $month, $day, '+3 days');
$day_4 = getNthDay($year, $month, $day, '+4 days');
$day_5 = getNthDay($year, $month, $day, '+5 days');
$day_6 = getNthDay($year, $month, $day, '+6 days');

// 週間の日付出力 用 変数
$table = NULL;

for($i = 0;$i < 7;$i++) {

$ymd = getNthDay($year, $month, $day, '+' . $i . 'day');

$y = substr($ymd, 0,4);
$m = substr($ymd, 4,2);
$d = substr($ymd, 6,2);


$n = sprintf("%01d", $m);
$j = sprintf("%01d", $d);

// $t = $j . '日';

if(isToday($y,$m,$d)) {
$table .='<td class="today">' . $j . '</td>';

} else {
$table .="<td>". $j . "</td>";
}

}



 

?>



<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>

<table border="1" cellspacing="0" cellpadding="10" width="100%" style="border: 1px solid black; border-collapse: collapse;">

<tr>
<td colspan=3><a href="http://localhost/wordpress/wp-content/themes/soutokukan_01/s-system/weekly-manager.php/?date=<?php print $prev_week; ?>">&laquo;前週</a>
</td>
<th colspan=3><?php print $year;?><?php print $month; ?></th>
<td colspan=3><a href="http://localhost/wordpress/wp-content/themes/soutokukan_01/s-system/weekly-manager.php/?date=<?php print $next_week; ?>">&laquo;翌週</a>
</td>


</tr>

<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td></td>
<?php
print $table;
?>
</tr>

<!-- 部屋ナンバー 401 〜 614 作成 -->

<?php

$room_n = 6;
$rooms = array();
for($i = 4; $i <= $room_n;$i++) {
 
for($j = 1;$j <= 14;$j++) {
print "<tr>";
 
if($j < 10) {
print "<td>" . $i . "0" . $j . "</td>";
$rooms = $i . "0" . $j;
 
} else {
print "<td>" . $i . $j . "</td>";
$rooms = $i . $j;
 
}

var_dump($rooms);
 
?>

 
<?php if(isset($arr_room_number)) : ?>
 
<td>
<?php print $arr_room_number[0] . "\n"; ?>
</td>
<?php endif; ?>

 
<td>
<?php print $day_1; ?>
</td>

<td>
<?php print $day_2; ?>
</td>

<td>
<?php print $day_3; ?>
</td>

<td>
<?php print $day_4; ?>
</td>

<td>
<?php print $day_5; ?>
</td>

<td>
<?php print $day_6; ?>
</td>
 
 

<?php

}

}
?>
</tr>


</table> <!-- table END -->

</body>
</html>