PHP 管理カレンダー weekly-manager.php ソース
↑ 現在の作業画面です。
---------------
<?php
ini_set('display_errors', 1);
//エスケープ処理
function h($s) {
}
$arr_check_in = array();
$arr_room_number = array();
$arr_index = 0;
/*---------------- 接続処理 ----------------*/
try {
// new PDO(データソース、ユーザー名、パスワード)
// データの取得
$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>
<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; ?>">«前週</a>
</td>
<td colspan=3><a href="http://localhost/wordpress/wp-content/themes/soutokukan_01/s-system/weekly-manager.php/?date=<?php print $next_week; ?>">«翌週</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);
?>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<?php
}
}
?>
</tr>
</table> <!-- table END -->
</body>
</html>