Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyswietlanie nr tygodni danego miesiaca
alpin
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 15.03.2004

Ostrzeżenie: (10%)
X----


Witam, napotkałem mały problem w swoim skrypcie, banalny, ale nie bardzo wiem jak go "ładnie" rozwiązać. A mianowicie ... tworze kalendaria ..
Główna daną wejściową jest rok ... później robię pętle na poszczególne tygodnie i wyciągam sobie potrzebne dane. Potrzebuje wyświetlić numery tygodni poszczególnego miesiąca, doszedłem do czegoś takiego:

  1. <?
  2.  
  3. $year =2013;
  4.  
  5. for($week_number=1; $week_number<53; $week_number++)
  6.  
  7. {
  8. if($week_number<10) { $week_number="0$week_number";}
  9.  
  10. $miesiac_7_dnia = date("n",strtotime($year."-W".$week_number."-7")); //n Liczbowa forma miesiąca, bez zer wiodących 1 aż do 12
  11. $rok_7_dnia = date("Y",strtotime($year."-W".$week_number."-7"));
  12.  
  13.  
  14. $ile_dni_ma_miesiac=date("t",strtotime("1-$miesiac_7_dnia-$rok_7_dnia"));
  15.  
  16. //echo "$ile_dni_ma_miesiac<br><Br>";
  17.  
  18. $nr_tyg_start=date("W", strtotime("01-$miesiac_7_dnia-$rok_7_dnia"));
  19. $nr_tyg_stop=date("W",strtotime("$ile_dni_ma_miesiac-$miesiac_7_dnia-$rok_7_dnia"));
  20.  
  21. //echo "nr tyg start $nr_tyg_start nr tyg stop $nr_tyg_stop<br><br>";
  22.  
  23. echo "Miesiac nr $miesiac_7_dnia posiada nastepujace nr tygodni:<br>";
  24. for($i=$nr_tyg_start; $i<=$nr_tyg_stop; $i++){
  25.  
  26. echo (int)$i."<br>";
  27. }
  28. echo "<br>";
  29. }
  30.  
  31. ?>


I to działa ale nie do końca, ponieważ ostatni dzień grudnia jest juz 1 tygodniem nowego roku i pętla mi sie nie wykonuje, myslałem o jakichś wyrażeniach warunkowych ale to chyba juz będzie przekombinowane, myślę że da się to zrobić w jakiś prostszy sposób ale jakoś nie wpada mi do głowy. Podsumowując chodzi mi o nastepujacy wynik :

  1. $miesiac_7_dnia = date("n",strtotime($year."-W".$week_number."-7")); //n Liczbowa forma miesiąca, bez zer wiodących 1 aż do 12
  2. // np 1 czyli Styczeń
  3. // wynik może być tablica np. $numery_tygodni=array("1","2","3","4","5");
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
alpin
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 15.03.2004

Ostrzeżenie: (10%)
X----


Hm .. czegoś nie rozumiem, wynik Twego kodu zwraca mi taki wynik, nie oszukuje bo nie mam po co ;P
  1. 1 - 1<br />2 - 1<br />3 - 1<br />4 - 1<br />5 - 1<br />6 - 1<br />7 - 1<br />8 - 1<br />9 - 1<br />10 - 1<br />11 - 1<br />12 - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51<br />


a z 1 odpowiedzi zwraca :
  1. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52


To kod źródłowy strony wynikowej. Tak czy inaczej i tak jestem wdzięczny za próbę pomocy, tylko bardziej mnie ciekawi czemu Twój kod u mnie nie działa.
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: 3.10.2025 - 02:54