環境:Windows10,XAMPP,HeidiSQL
laravelでカレンダーを作っています。
日めくりが上手くいきません。
http://localhost:8000/calendar2021-01
上記のようにアクセスし問題なく表示されます。
日めくりも1桁まではうまくいきますが、
10月からつまり2桁になると上手く表示されません。
http://localhost:8000/calendar2021-10
とすると$monthの値が【0】
http://localhost:8000/calendar2021-12
とすると$monthの値が【2】
になります。
http://localhost:8000/calendar2021-12
と入れて$monthの値が【12】にすることは出来ないのでしょうか。
ご教授頂けないでしょうか?
【ルート】
Route::get('/calendar{year}{month}','dayController@getCalendarDates');
【コントローラ】
public function getCalendarDates($year,$month) { dd($month); $dateStr = sprintf('%04d-%02d-01', $year,$month); $date = new Carbon($dateStr); $addDay = ($date->copy()->endOfMonth()->isSunday()) ? 7 : 0; // カレンダーを四角形にするため、前月となる左上の隙間用のデータを入れるためずらす $date->subDay($date->dayOfWeek); // 同上。右下の隙間のための計算。 $count = 31 + $addDay + $date->dayOfWeek; $count = ceil($count / 7) * 7; $dates = []; for ($i = 0; $i < $count; $i++, $date->addDay()) { // copyしないと全部同じオブジェクトを入れてしまうことになる $dates[] = $date->copy(); } $a = substr($year,0,4); //1ヶ月前 $sub = Carbon::createFromDate($a,$month); $subMonth = $sub->subMonth(); $subY = $subMonth->year; $subM = $subMonth->month; //1ヶ月後 $add = Carbon::createFromDate($a,$month); $addMonth = $add->addMonth(); $addY = $addMonth->year; $addM = $addMonth->month; $now = Carbon::today(); return view('calendar',compact('dates','a','month','subY','subM','addY','addM','now')); }
【ブレード】
<table class="table table-bordered"> <thead> <tr> @foreach (['日', '月', '火', '水', '木', '金', '土'] as $dayOfWeek) <th>{{ $dayOfWeek }}</th> @endforeach </tr> </thead> <tbody> @if($subM >= 10) <a href="/calendar{{$subY}}-{{$subM}}"><<前月 </a> @else <a href="/calendar{{$subY}}-0{{$subM}}"><<前月 </a> @endif {{$a}}年{{$month}}月 @if($addM >= 10) <a href="/calendar{{$addY}}-{{$addM}}">次月>></a> @else <a href="/calendar{{$addY}}-0{{$addM}}">次月>></a> @endif @foreach ($dates as $date) @if ($date->dayOfWeek == 0) <tr> @endif @if ($date == $now && $date->dayOfWeek == 0 && $date->year == $a) <td style="background-color:#ffff00; color:#990000;">{{ $date->day }}</td> @elseif ($date == $now && $date->dayOfWeek == 6 && $date->year == $a) <td style="background-color:#ffff00; color:##3366CC;">{{ $date->day }}</td> @elseif ($date == $now && $date->year == $a) <td style="background-color:#ffff00;">{{ $date->day }}</td> @elseif ($date->dayOfWeek == 0) <td style="background-color:#f08080; color:#990000;">{{ $date->day }}</td> @elseif ($date->dayOfWeek == 6) <td style="background-color:#66CCFF; color:#3366CC;">{{ $date->day }}</td> @else <td> {{ $date->day }} </td> @endif @if ($date->dayOfWeek == 6) </tr> @endif @endforeach </tbody> </table>
> と入れて$monthの値が【12】にすることは出来ないのでしょうか。
できるんじゃないですかね。
回答2件
あなたの回答
tips
プレビュー