今日より前の日付を灰色にしたいです。そのために★部分にif文で条件を書いたのですが、なぜか3日から9日だけ灰色になりません。
やり方を教えてください。
PHP
1<?php 2//タイムゾーン設定 3date_default_timezone_set('Asia/Tokyo'); 4 5// 前月・次月リンクが押された場合は、GETパラメーターから年月を取得 6if (isset($_GET['ym'])) { 7 $ym = $_GET['ym']; 8} else { 9 // 今月の年月を表示 10 $ym = date('Y-m'); 11} 12 13// タイムスタンプを作成し、フォーマットをチェックする 14$timestamp = strtotime($ym . '-01'); 15if ($timestamp === false) { 16 $ym = date('Y-m'); 17 $timestamp = strtotime($ym . '-01'); 18} 19 20// 今日の日付 フォーマット 例)2018-07-3 21$today = date('Y-m-j'); 22 23 24// カレンダーのタイトルを作成 例)2017年7月 25$html_title = date('Y年n月', $timestamp); 26 27// 前月・次月の年月を取得 28$prev = date('Y-m', strtotime('-1 month', $timestamp)); 29 30$next = date('Y-m', strtotime('+1 month', $timestamp)); 31 32//月末日までの日数を取得 33$day_count = date('t', $timestamp); 34//1日の曜日を取得 35$first_youbi = date('w', $timestamp); 36//月末日の曜日を取得 37$last_youbi = date('w', strtotime($ym . $first_youbi)); 38 39$aryCalendar = []; 40$j = 0; 41 42 43//1日開始曜日までの穴埋め 44for ($i = 0; $i < $first_youbi; $i++) { 45 $aryCalendar[$j][] = ''; 46} 47 48//1日から月末日までループ 49for ($i = 1; $i <= $day_count; $i++) { 50 51 //日曜日まで進んだら改行 52 if (isset($aryCalendar[$j]) && count($aryCalendar[$j]) === 7) { 53 $j++; 54 } 55 $aryCalendar[$j][] = $i; 56} 57 58//月末曜日の穴埋め 59for ($i = count($aryCalendar[$j]); $i < 7; $i++) { 60 $aryCalendar[$j][] = ''; 61} 62 63$aryWeek = ['日', '月', '火', '水', '木', '金', '土']; 64 65?> 66 67 68<html> 69 70 <table class="calendar"> 71 72 73 <!-- 曜日の表示 --> 74 <tr> 75 <?php foreach ($aryWeek as $week) : ?> 76 <th><?php echo $week ?></th> 77 <?php endforeach; ?> 78 </tr> 79 80 81 <!-- 日数の表示 --> 82 83 <?php foreach ($aryCalendar as $days) : ?> 84 85 <tr> 86 <?php foreach ($days as $day) : ?> 87 88 89 90 <?php if ($ym . '-' . $day !== date('Y-m-j')) : ?> 91 92 93 <!-- 今日以外の日 --> 94 <td> 95 96 <!-- ★ --> 97 <a <?php if (($ym . '-' . $day) < date('Y-m-j')) echo 'class= color' ?> href="./contactform.php"> 98 99 <?php echo $day ?> 100 101 </a> 102 </td> 103 104 <?php else : ?> 105 106 107 <!-- 今日 --> 108 <td class=" today "> 109 110 <a href="./contactform.php"> 111 112 <?php echo $day ?> 113 114 </a> 115 116 </td> 117 118 119 <?php endif; ?> 120 121 122 <?php endforeach; ?> 123 </tr> 124 125 <?php endforeach; ?> 126 127 128 </table> 129 130</html> 131
CSS
1.color { 2 background-color: gray; 3}
念のため、「どのように解決したか」理解度など含めてフィードバックください。
https://teratail.com/help/question-tips#questionTips4-2
回答1件
あなたの回答
tips
プレビュー