Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Który tydzień miesiąca jest teraz
Forum PHP.pl > Forum > Przedszkole
Kamil Rybczyński
Witam,

proszę o podpowiedzi jak wykonać funkcję, któa zwróci w postaci cyfry, który jest tydzień miesiąca.

Przykładowo dzisiaj jest trzeci tydzień sierpnia.

Pierwszy tydzień sierpnia zaczął się od piątku i trwał do niedzieli (1-3)
Drugi od poniedziałku do niedzieli (4-10) i dziś mamy 12, czyli drugi dzień trzeciego tygodnia.
mike
Wystarczy podeprzeć się fukcją date() i sprawnie operować na wilokrotnościach siódemki tongue.gif
Minimalna ilość matematyki wystarczy.
ferrero2
smile.gif W rzeczy samej tutaj masz info o tej funkcji wraz z opisem jaka literka da Ci konkretną wartość.

http://www.webdiary.pl/technologie+art.id+38.htm

Pozdrawiam
Kamil Rybczyński
Dotychczas udało mi się zrobić tak:

  1. <?php
  2. $dzien_dzis = date(w);
  3. $dzien_jutro = $dzien_dzis + 1;
  4. $dzien_pojutrze = $dzien_dzis + 2;
  5.  
  6.  
  7. $Miesiace_Ang = array("Error", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  8. $miesiac = date("n");
  9. $rok = date("Y");
  10.  
  11. function dni_mies($miesiac,$rok){
  12.  $dni = 31;
  13.  while (!checkdate($miesiac, $dni, $rok)) $dni--;
  14. return $dni;
  15. } 
  16.  
  17. $str = strtotime("1 ".$Miesiace_Ang[$miesiac]." ".$rok."");
  18. $start_miesiaca = date("w", $str);
  19. $max_dni = dni_mies($miesiac,$rok);
  20. $dzis = date("j");
  21. ?>


W ten sposób wiem, którego dnia tygodnia rozpoczyna się miesiąc oraz ile miesiąc ma dni.

Ale nie mogę wymysleć sposobu aby podzielić teraz miesiąc na tygodnie i przypisać im wartości.

Z góry dziękuję za pomoc i pomysły.
kszychu
@Ferrero2: Wrzeczy samej info jest, ale nie ma tam literki, która by rozwiązywała problem zawarty w pierwszym poście. Tak więc Twój post jest mało pomocny, gdyż to samo, a nawet więcej (bo z przykładami) zawarte jest w manualu.
ferrero2
Ok to podaj mi tylko informację na przykładzie sierpnia :
01.08 - to jest pierwszy tydzień sierpnia ?
czy pierwszy tydzień sierpnia zaczyna się 04 w poniedziałek a 01 jest traktowany jako ostatni tydzien lipca ?
Kamil Rybczyński
01 traktowany jest już jako pierwszy tydzień sierpnia i trwa on tak jakby tylko 3 dni (piątek, sobota, niedziela) i ta funkcja musi właśnie odróżnić, że nie każdy miesiąc zaczyna się w poniedziałek i pierwszy tydzien trwać może mniej niż 7 dni smile.gif
peter13135
$dzien_dzis = date(w);
$dzien_jutro = $dzien_dzis + 1;
$dzien_pojutrze = $dzien_dzis + 2;


gdy bedzie 31, to dzien pojutrze będzie == 33 ;] (z jutro 32)
maziak
Witaj. A stwierdziłem, że spróbuje smile.gif

  1. <?php
  2. function tydzienMiesiaca($dzien,$miesiac,$rok) {
  3.  
  4. $teraz= date('j',mktime(0,0,0,$miesiac,$dzien,$rok));
  5. $roznica_dni = 8-date('N',mktime(0,0,0,$miesiac,1,$rok));
  6.  
  7. if ($teraz <= $roznica_dni) 
  8. $tydzien=1;
  9.  
  10. if (($teraz > $roznica_dni) && ($teraz <= $roznica_dni + 7 ) )
  11. $tydzien=2;
  12.  
  13. if (($teraz > ($roznica_dni +7)) && ($teraz <= $roznica_dni + 7*) )
  14. $tydzien=3;
  15.  
  16. if (($teraz > ($roznica_dni +7*2)) && ($teraz <= $roznica_dni + 7*) )
  17. $tydzien=4;
  18.  
  19. if (($teraz > ($roznica_dni +7*3)) && ($teraz <= $roznica_dni + 7*) )
  20. $tydzien=5;
  21.  
  22. if (($teraz > ($roznica_dni +7*4)) && ($teraz <= $roznica_dni + 7*) )
  23. $tydzien=6;
  24.  
  25. return $tydzien;
  26. }
  27.  
  28.  
  29. echo tydzienMiesiaca(4,8,2008); //dzien-miesiac-rok. Podawac BEZ zer wiodacych !!
  30. ?>


Dopiero co to napisalem, z pierwszych testow wynika ze niby dziala tongue.gif Jak by byly bledy to pisz!
Kamil Rybczyński
Wszystko bardzo ładnie działa.

Wielkie dzięki za pomoc. Są jednak jeszcze dobrzy ludzie smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.