Na razie utknąłem jeszcze z inną rzeczą - ponieważ dorobiłem możliwość zmiany miesiąca, inne pokazują początek w dobry dzien tygodnia, ale ich numeracja zaczyna się różnie (np pazdziernik od 4. do 34.)
$year = date('Y');
$monthNum = date('n');
$daysOfMonth = date('t');
$dayOfWeek = date('w');
$dayOfMonth = date('j');
$firstDayOfMonth = date('w', mktime(0, 0, 0, $monthNum, 1, $year));
if ( (isset($_GET['m'])) && (isset($_GET['y'])) )
{
$year = $_GET['y'];
$monthNum = $_GET['m'];
$daysOfMonth = date('t', strtotime(date($year."-".$monthNum."-01")));
$dayOfWeek = date('w', strtotime(date($year."-".$monthNum."-01")));
$firstDayOfMonth = date('w', mktime(0, 0, 0, $monthNum, 1, $year));
}
if ($dayOfWeek == 0) {$dayOfWeek = 7;}
if ($firstDayOfMonth == 0) {$firstDayOfMonth = 7;}
switch ($monthNum)
{
case 1: $monthName = "Styczeń"; break;
case 2: $monthName = "Luty"; break;
case 3: $monthName = "Marzec"; break;
case 4: $monthName = "Kwiecień"; break;
case 5: $monthName = "Maj"; break;
case 6: $monthName = "Czerwiec"; break;
case 7: $monthName = "Lipiec"; break;
case 8: $monthName = "Sierpień"; break;
case 9: $monthName = "Wrzesień"; break;
case 10: $monthName = "Październik"; break;
case 11: $monthName = "Listopad"; break;
case 12: $monthName = "Grudzień"; break;
}
?>
<table id="tableSzkolenia">
<tbody>
<tr id="head-row">
<?php
$prevMonth = $monthNum - 1;
$nextMonth = $monthNum + 1;
$prevYear = $year;
$nextYear = $year;
if ($prevMonth == 0) {$prevMonth = 12; $prevYear--;}
if ($nextMonth == 13) {$nextMonth = 1; $nextYear++;}
?>
<th class="zmiana left" style="height: 50px;" onclick='location.href="./szkolenia.php?m=
<?php echo $prevMonth; ?>&y=
<?php echo $prevYear; ?>"'><span class="fa fa-chevron-left icon-sm"></span></th>
<th class="text-center" style="height: 50px; padding: 10px;" colspan="5">
<?php echo $monthName." ".$year; ?></th>
<th class="zmiana right" style="height: 50px;" onclick='location.href="./szkolenia.php?m=
<?php echo $nextMonth; ?>&y=
<?php echo $nextYear; ?>"'><span class="fa fa-chevron-right icon-sm"></span></th>
</tr>
<tr id="days-row">
<th>Pon</th>
<th>Wt</th>
<th>Śr</th>
<th>Czw</th>
<th>Pt</th>
<th>Sob</th>
<th>Nd</th>
</tr>
<?php
$j = $daysOfMonth + $firstDayOfMonth - 1;
for ($i = 0; $i < $j; $i++)
{
if (($i < $firstDayOfMonth - 1
) || ($i > $j)) {echo "<td bgcolor=\"transparent\"></td>"; continue
;} if (($i % 7
) == 0
) {echo "</tr><tr>";} if (($i - $firstDayOfMonth + 2) == $dayOfMonth) {$color = "#ffb900";}
if ($dayOfWeek == 6) {$color = "red";}
else {$color = "#f6f6f6";}
echo "<td class=\"tdSzkolenia\" style=\"background: $color;\">$i</td>"; }
?>
</tbody>
</table>
ok z wypełnieniem tabeli do końca sobie poradziłem. Prawidłowy i działający kod wygląda następująco:
$year = date('Y');
$monthNum = date('n');
$daysOfMonth = date('t');
$dayOfWeek = date('w');
$dayOfMonth = date('j');
$firstDayOfMonth = date('w', mktime(0, 0, 0, $monthNum, 1, $year));
if ( (isset($_GET['m'])) && (isset($_GET['y'])) )
{
$year = $_GET['y'];
$monthNum = $_GET['m'];
$daysOfMonth = date('t', strtotime(date($year."-".$monthNum."-01")));
$dayOfWeek = date('w', strtotime(date($year."-".$monthNum."-01")));
$firstDayOfMonth = date('w', mktime(0, 0, 0, $monthNum, 1, $year));
}
if ($dayOfWeek == 0) {$dayOfWeek = 7;}
if ($firstDayOfMonth == 0) {$firstDayOfMonth = 7;}
switch ($monthNum)
{
case 1: $monthName = "Styczeń"; break;
case 2: $monthName = "Luty"; break;
case 3: $monthName = "Marzec"; break;
case 4: $monthName = "Kwiecień"; break;
case 5: $monthName = "Maj"; break;
case 6: $monthName = "Czerwiec"; break;
case 7: $monthName = "Lipiec"; break;
case 8: $monthName = "Sierpień"; break;
case 9: $monthName = "Wrzesień"; break;
case 10: $monthName = "Październik"; break;
case 11: $monthName = "Listopad"; break;
case 12: $monthName = "Grudzień"; break;
}
?>
<table id="tableSzkolenia">
<tbody>
<tr id="head-row">
<?php
$prevMonth = $monthNum - 1;
$nextMonth = $monthNum + 1;
$prevYear = $year;
$nextYear = $year;
if ($prevMonth == 0) {$prevMonth = 12; $prevYear--;}
if ($nextMonth == 13) {$nextMonth = 1; $nextYear++;}
?>
<th class="zmiana left" style="height: 50px;" onclick='location.href="./szkolenia.php?m=
<?php echo $prevMonth; ?>&y=
<?php echo $prevYear; ?>"'><span class="fa fa-chevron-left icon-sm"></span></th>
<th class="text-center" style="height: 50px; padding: 10px;" colspan="5">
<?php echo $monthName." ".$year; ?></th>
<th class="zmiana right" style="height: 50px;" onclick='location.href="./szkolenia.php?m=
<?php echo $nextMonth; ?>&y=
<?php echo $nextYear; ?>"'><span class="fa fa-chevron-right icon-sm"></span></th>
</tr>
<tr id="days-row">
<th>Pon</th>
<th>Wt</th>
<th>Śr</th>
<th>Czw</th>
<th>Pt</th>
<th>Sob</th>
<th>Nd</th>
</tr>
<?php
$j = $daysOfMonth + $firstDayOfMonth - 1;
for ($i = 0; $i < $j; $i++)
{
$class = "tdSzkolenia";
if ($i < $firstDayOfMonth - 1
) {echo "<td style=\"background: #f6f6f6;\"></td>"; continue
;} if (($i % 7
) == 0
) {echo "</tr><tr>";}
if (($i - $firstDayOfMonth + 2) == $dayOfMonth)
{
$color = "#ffffff";
$class = "tdSzkolenia today";
}
else {$color = "#e6e6e6";}
echo "<td class=\"$class\" style=\"background: $color;\">$i</td>"; }
// Pętla wypełniająca tabelę do niedzieli, jesli miesiąc kończy się wcześniej
$x = $daysOfMonth + $firstDayOfMonth;
while (($x % 7) != 1)
{
echo "<td style=\"background: #f6f6f6;\"></td>"; $x++;
}
?>
</tbody>
</table>
teraz co mam zrobic zeby inna miesiace niz aktualny (po kliknieciu we wczesniejszy lub pozniejszy) zaczynal sie od pierwszego dnia, a nie od numeru dnia (np czwartek = 4)
Z Waszą ogromną pomocą sobie już poradziłem...
Temat do zamknięcia.