@props([ 'currentDate', 'testDates' => [], 'testsByDate' => [], 'datesPreviousValid' => [], 'gamesThatDay' => [], 'lastPeriod' => 'anterior', 'lastGameDate' => '', 'lastGameId' => '' ]) @php use Carbon\Carbon; $year = $currentDate->year; $month = $currentDate->month; $firstDay = Carbon::create($year, $month, 1); $startWeekday = $firstDay->dayOfWeek; // Convertir el día de la semana para que lunes sea 0 y domingo sea 6 $startWeekday = $startWeekday === 0 ? 6 : $startWeekday - 1; $daysInMonth = $firstDay->daysInMonth; // Obtener el primer y último día del mes actual $firstDayOfMonth = Carbon::create($year, $month, 1)->startOfDay(); $lastDayOfMonth = Carbon::create($year, $month, 1)->endOfMonth()->endOfDay(); // Asegurarnos de que test_dates sea una colección $test_dates_collection = collect($testDates); // Calcular meses con tests $months_with_tests = []; $years_with_tests = []; foreach($test_dates_collection as $test_date) { $date = Carbon::parse($test_date); if (!isset($months_with_tests[$date->year])) { $months_with_tests[$date->year] = []; } $months_with_tests[$date->year][$date->month] = true; $years_with_tests[$date->year] = true; } // Verificar si hay tests en el mes anterior $firstDayPrevMonth = $firstDayOfMonth->copy()->subMonth()->startOfMonth(); $lastDayPrevMonth = $firstDayOfMonth->copy()->subMonth()->endOfMonth(); $hasTestsPrevMonth = $test_dates_collection->filter(function($date) use ($firstDayPrevMonth, $lastDayPrevMonth) { $d = Carbon::parse($date); return $d->between($firstDayPrevMonth, $lastDayPrevMonth); })->isNotEmpty(); // Verificar si hay tests en el mes siguiente $firstDayNextMonth = $lastDayOfMonth->copy()->addDay()->startOfDay(); $lastDayNextMonth = $lastDayOfMonth->copy()->addMonth()->endOfDay(); $hasTestsNextMonth = $test_dates_collection->filter(function($date) use ($firstDayNextMonth, $lastDayNextMonth) { $d = Carbon::parse($date); return $d->between($firstDayNextMonth, $lastDayNextMonth); })->isNotEmpty(); @endphp
| {{ __('all.calendar_days.L') }} | {{ __('all.calendar_days.M') }} | {{ __('all.calendar_days.X') }} | {{ __('all.calendar_days.J') }} | {{ __('all.calendar_days.V') }} | {{ __('all.calendar_days.S') }} | {{ __('all.calendar_days.D') }} |
|---|---|---|---|---|---|---|
| @php $cell++; @endphp @endfor @for($day=1;$day<=$daysInMonth;$day++) @php $d = Carbon::create($year,$month,$day)->format('Y-m-d'); $hasTest = $test_dates_collection->contains($d); $classes = $hasTest ? ' has-test ' : ''; if($d == $currentDate->format('Y-m-d')) $classes .= ' selected-day '; @endphp |
{{ $day }}
@if($hasTest)
@php
$dayTests = $testsByDate[$d] ?? collect();
@endphp
@if($dayTests->isNotEmpty())
@foreach($dayTests as $test)
{{ Carbon::parse($test->date_time_start)->format('H:i') }}
@endforeach
@endif
@endif
|
@php
$cell++;
if($cell%7==0) echo '|||||
| @php $cell++; @endphp @endwhile |