phpを使ってカレンダーを作ったのですが右のリンクをクリックしても来月のものが表示されず、他の月から右のリンクをクリックすると一気に来月まで飛んでしまいます。
コード<?php date_default_timezone_set('Asia/Tokyo'); if (isset($_GET['ym'])) { $ym = $_GET['ym']; } else { $ym = date('Y-m'); } $timestamp = strtotime($ym .'-01'); if ($timestamp === false) { $ym = date('Y-m'); $timestamp=strtotime($ym . '-01'); } $today = date('Y-m-j', time()); $html_title=date('Y年n月', $timestamp); $prev = date('Y-m', mktime(0, 0, 0, date('m', $timestamp)-1, 1, date('Y', $timestamp))); $next = date('Y-m', mktime(0, 0, 0, date('m', $timestamp)+1, 1, date('Y', $timestamp))); $day_count=date('t',$timestamp); $youbi=date('w', mktime(0, 0, 0, date('m',$timestamp),1,date('Y',$timestamp))); $weeks = []; $week = ''; $week .= str_repeat('<td></td>',$youbi); for( $day=1; $day <= $day_count; $day++, $youbi++){ $date = $ym .'-'. $day; if($today == $date){ $week .= '<td class="today">' . $day; } else{ $week .= '<td>'. $day;} $week .= '</td>'; if($youbi % 7 == 6 || $day == $day_count){ if($day == $day_count){ $week .= str_repeat('<td></td>', 6- ($youbi % 7)); } $weeks[] = '<tr>' . $week . '</tr>'; $week = ''; } } ?> <!DOCTYPE html> <html lang='ja'> <head> <meta charset='utf-8'> <title>PHPカレンダー</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP&display=swap" rel="stylesheet"> <style> .container{ font-family: 'Noto Sans JP', sans-serif; margin-top: 80px;} h3{margin-bottom:30px;} th{height: 30px; text-align: center;} td{height:30px; } .today{ background: green; } th:nth-of-type(1),td:nth-of-type(1){color :red; } th:nth-of-type(7),td:nth-of-type(7){color:blue;} </style> </head> <body> <div class='container'> <h3><a href="?ym=<?php echo $prev; ?>"><</a> <?php echo $html_title; ?> <a href="?ym<?php echo $next; ?>">></a></h3> <table class="table table-bordered"> <tr> <th>日</th> <th>月</th> <th>火</th> <th>水</th> <th>木</th> <th>金</th> <th>土</th> </tr> <?php foreach($weeks as $week){ echo $week; } ?> </table> </div> </body> </html>
ご教授お願いいたします。
回答3件
あなたの回答
tips
プレビュー