teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

解決したコードの追記

2021/12/01 05:07

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -91,101 +91,12 @@
91
91
  }
92
92
  ```
93
93
 
94
- ```php
95
- <?php
96
- session_start();
97
- if($_SESSION['login'] !== 'OK') {
98
- header('Location: login');
94
+ 以下の年を跨ぐことを考慮したコードを追加して解決できました。
99
- exit();
95
+ ありがとうございました。
100
- }
101
96
 
102
- //不定休日の値を取得する処理
103
- $iholiday = [];
97
+ ```javascript
104
- $sql = "SELECT Iholiday FROM table3 WHERE Cusid=?";
105
- $sth = $dbh -> prepare($sql);
106
- $array = array($_SESSION['cusid']);
107
- $sth -> execute($array);
108
- $result = $sth->fetchall(PDO::FETCH_ASSOC);
109
- foreach($result as $row){
98
+ if(nowDate.getFullYear() < year ){
110
- $iholidays = new DateTime($row['Iholiday']);
99
+ c += '<a href="" onClick="prev();return false;" class="cal_prev"></a>';
111
- $iholiday[] = $iholidays -> format('Y/n/j');
100
+ c += '<p>'+year+'年'+month+'月</p>';
112
101
  }
113
-
114
- function make_date_list($year,$month){
115
- //毎週の定休日
116
- global $weeks;
117
- $regular_holiday = explode(',', $weeks);
118
-
119
- //祝日
120
- $public_holidays = get_public_holidays();
121
- //不定休
122
- global $iholiday;
123
-
124
- $target = new \DateTime("{$year}-{$month}-01");
125
- $date = [];
126
- for($i = 0; $i < intval($target->format('t')); $i++){
127
-
128
- if($i > 0) $target->modify('+1day');
129
- //祝日
130
- if(isset($public_holidays[$target->format('Y/n/j')])){
131
- $holiday = true;
132
- //定休日
133
- }else if(in_array($target->format('w'),(array)$regular_holiday)){
134
- $holiday = true;
135
- //不定休
136
- }else if(in_array($target->format('Y/n/j'),(array)$iholiday)){
137
- $holiday = true;
138
- //今日
139
- }
140
- else{
141
- $holiday = false;
142
- }
143
-
144
- $dates[$i] = [
145
- 'day' => $target->format('j'),
146
- 'week' => $target->format('w'),
147
- 'holiday' => $holiday,
148
- ];
149
-
150
- }
151
-
152
- /*カレンダーの空欄箇所*/
153
- $first_date = current($dates);
154
- $end_date = end($dates);
155
-
156
- $damy_num = intval($first_date['week']);
157
- if($damy_num > 0){
158
- $damy = [];
159
- for($i = $damy_num - 1;0 <= $i;$i--){
160
- array_unshift($dates,['week'=>$i,'day'=>'&nbsp;']);
161
- }
162
- }
163
-
164
- $damy_num = intval($end_date['week']);
165
- if($damy_num < 6){
166
- $damy = [];
167
- for($i = $damy_num; $i < 6;$i++){
168
- array_push($dates,['week'=>$i,'day'=>'&nbsp;']);
169
- }
170
- }
171
-
172
- return $dates;
173
- }
174
-
175
- if(isset($_GET['y']) and $_GET['y']){
176
- $year = $_GET['y'];
177
- }else{
178
- $year = date('Y');
179
- }
180
-
181
- if(isset($_GET['m']) and $_GET['m']){
182
- $month = $_GET['m'];
183
- }else{
184
- $month = date('m');
185
- }
186
-
187
- $dates = make_date_list($year,$month);
188
-
189
- echo json_encode($dates);
190
- ?>
191
102
  ```