Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Kalendarz, Problem z pierwszym dniem miesiąca
Barcelona
post
Post #1





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

Ostrzeżenie: (0%)
-----


Witam, na stronie mam zastosowany kalendarz, który fabrycznie pokazywał tydzień od niedzieli do soboty. Trochę mi to nie pasowało, więc przerobiłem bo żeby pokazywał od poniedziałku do niedzieli.
Myślałem że wszystko dobrze zrobiłem, ale jak zobaczyłem miesiąc "Kwiecień" to zacząłem drapać się po głowie.

(IMG:http://iv.pl/images/67517687747651199381.png)

W kwestii wyjaśnienia 1 kwietnia przypada w niedziele.

Zamieszczam kod

  1. function kalendarz($ile) {
  2. $znacznik = mktime(0, 0, 0, date("m")+$ile, 1);
  3. $iledni = date("t", $znacznik);
  4. $start = date("w", $znacznik)-1;
  5. $miesiac = date("m", $znacznik);
  6. $rok = date("Y", $znacznik);
  7. $brygada = $_SESSION['brygada'];
  8. $miesiace = array(
  9. "Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec",
  10. "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"
  11. );
  12. $od = date("Y-m-d", mktime(0, 0, 0, $miesiac, 1, $rok));
  13. $do = date("Y-m-d", mktime(0, 0, 0, $miesiac, $iledni, $rok));
  14. $uzyte = array();
  15.  
  16. $wynik = mysql_query("SELECT DATE(data) AS data FROM produkcja
  17. WHERE brygada='$brygada' AND data BETWEEN '$od' AND '$do' GROUP BY DATE(data)");
  18. while($wynik and $dane=mysql_fetch_assoc($wynik)) $uzyte[] = $dane['data'];
  19.  
  20. echo "<table border='0' cellspacing='0' cellpadding='2' id='rounded-corner'><thead><tr><th scope=\"col\" class=\"rounded-company\">";
  21. echo "<a href='index.php?strona=raport&podstrona=tygodniowy&week=".$_GET['week']."&ile=".($ile-1)."'>&lt;&lt;</a>";
  22. echo "</th><th scope=\"col\" colspan='5' align='center'>";
  23. echo $miesiace[$miesiac-1]." $rok</td><th align='right' scope=\"col\" class=\"rounded-q4\">";
  24. echo "<a href='index.php?strona=raport&podstrona=tygodniowy&week=".$_GET['week']."&ile=".($ile+1)."'>&gt;&gt;</a>";
  25. echo "</th></tr><thead>";
  26. echo "<tr><td>Pn</td>
  27. <td>Wt</td><td>Śr</td><td>Cz</td><td>Pt</td><td>So</td><td>Nd</td></tr>";
  28. echo "<tr align='right'>";
  29. if ($start>0) echo "<td colspan='$start'>&nbsp;</td>";
  30. else $pierwszy=true;
  31. for ($i=1;$i<=$iledni;$i++) {
  32. $dzien = date("w", mktime(0, 0, 0, $miesiac, $i-1, $rok));
  33. if ($dzien==0 and !$pierwszy) echo "</tr><tr align='right'>";
  34. $pierwszy = false;
  35. // tu jest wersja dla uzytej i pustej daty:
  36. if (in_array(date("Y-m-d", mktime(0, 0, 0, $miesiac, $i, $rok)), $uzyte)) {
  37. echo '<td><b><a href="index.php?strona=raport&podstrona=dzienny&data='.date("Y-m-d", mktime(0, 0, 0, $miesiac, $i, $rok)).'">'.$i.'</a></b></td>'; // uzyta
  38. } else {
  39. echo "<td>$i</td>"; // pusta
  40. }
  41. }
  42. $koniec=7-($start+$iledni)%7;
  43. if ($koniec<>7) echo "<td colspan='$koniec'>&nbsp;</td>";
  44. echo "</tr>
  45. <tfoot>
  46. <tr>
  47. <td colspan='6' class=\"rounded-foot-left\"><em>Brygada ".$brygada."</em></td>
  48. <td class=\"rounded-foot-right\">&nbsp;</td>
  49. </tr>
  50. </tfoot>
  51. </table>";
  52. }


Gdzie robię błąd? Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:47