Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Operacje na datach
Forum PHP.pl > Forum > PHP
krzyzak_p
Na potrzeby pewnej stronki, ktora tworze potrzebowalem skrypt, ktory bedzie wyswietlal date najblizszego dnia tygodnia (pon, wt, sr), a takze date takiego dnia za x tygodni..
Napisalem sobie funkcje o nastepujacym kodzie:
  1. <?php
  2. function nast_dzien($dzien, $tygodni){
  3. $aktualny_d_t = date("w");
  4.  
  5. if($aktualny_d_t > $dzien){
  6. $roznica = $aktualny_d_t - $dzien;
  7. $next_wybrany_d_t = 7 - $roznica;
  8. }
  9. elseif($aktualny_d_t == $dzien) $next_wybrany_d_t = 7;
  10. elseif($akutalny_d_t < $dzien){
  11. $next_wybrany_d_t = $dzien - $aktualny_d_t;
  12. }
  13.  
  14. $dni = $next_wybrany_d_t + ($tygodni*7);
  15. $data = date("Y-m-d");
  16. $wynik = date("d.m.Y",(strtotime($data) + (3600*24*$dni)));
  17. return $wynik;
  18.  
  19. }
  20.  
  21. echo nast_dzien(6, 16);
  22. ?>

pierwsza zmienna to dzien tygodnia (format taki jak zwraca date("w")winksmiley.jpg, i za ile tygodni ma znalezc taki dzien tygodnia..
W powyzszym przykladzie wyswietla mi najblizsza sobote za 16tygodni, a skrypt wyswietla 7.12.2007, co po sprawdzeniu w 3 roznych kalendarzach jest piatkiem, a nie sobota;/
Dodam tylko ze dla mniejszego zakresu dat (gdy dzien, ktory chce uzyskac jest najdalej ostatnim dniem pazdziernika) caly skrypt dziala dobrze, ale od listopada cos sie zaczyna krzaczyc i to niezaleznie od platformy i wersji php (win, linux, php5.1, php5.2)...
Ma ktos moze pomysl co moze byc tego przyczyna?
emacieka
  1. <?php
  2. function nast_dzien ( $dzien, $tygodni )
  3. {
  4. $days = array ( 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' );
  5. $time = strtotime (' next ' . $days[$dzien] . ' + ' . $tygodni . ' week');
  6.  
  7. return date( 'Y-m-d', $time );
  8. }
  9. ?>


a tutaj jeszcze jedna ciekawa funkcja: Temat: Czas na podstawie zwrotu
ps: swiat jest maly winksmiley.jpg
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.