Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] data na boze cialo i zielone swiatki ?
Forum PHP.pl > Forum > Przedszkole
zoltar08
Od razu zaznaczę że jestem bardzo początkujący:)
Jak uzyskać datę na Boże Ciało i zielone światki w formacie (dzień miesiąc) np. 23 06 i mieć to w zmiennej ?

Zrobiłem kod na dzień wielkiej nocy:
  1. $rok = date('Y');
  2. $wielkanoc = date(" d m", easter_date($rok));
  3. echo $wielkanoc;


ale nie mogę sobie poradzić z bożym ciałem i zielonymi świątkami a to pewnie jest jakiś banał...

Wiem że boże ciało jest 60 dni po Wielkanocy a zielone światki chyba 49 dni po Wielkanocy.
usb2.0
eeee żart?biggrin.gif
thek
To policz sam wink.gif Święto Wielkiej nocy jest do uzyskania jedną funkcją w PHP -> easter_date. Teraz tylko utwórz datę tyle dni po niej ile chcesz.

Byłbym zapomniał... To dotyczy tylko dat w timestamp. Jeśli chcesz wyskoczyć z datą poza zakres 1970-2037 (ograniczenia timestamp), to musisz użyć easter_days, która podaje datę Wielkanocy jako liczbe dni po 21 marca. Wystarczy że do tego dodasz liczbę dni od wielkanocy do choćby Bożego ciała i policzysz kiedy to wypadnie smile.gif Przykładowo podaję Ci rozwiązanie dla Bożego Ciała w zakresie timestamp, ale z użyciem easter_days
  1. $year = 2011;
  2. echo date('Y-m-d', strtotime( '+'.( easter_days( $year ) + 60 ).' days', strtotime( '21 March '.$year ) ) );


Byłbym zapomniał... Można jeszcze ciut szybciej, z użyciem mktime by nie używać takiej ilości konwersji strtotime wink.gif
  1. $year = 2020;
  2. echo date('Y-m-d', mktime(0, 0, 0, 3, 21+easter_days( $year )+60, $year) );

Dlaczego tak? 21 marca to ( 0, 0, 0, 3, 21, $year ) ale dodajemy ilość dni do Wielkancy i jeszcze 60 dni. O to jaki dzien wypadnie i w jakim miesiącu zatroszczy sie sam php przeliczając to nam. Tylko uważaj na zakres dat. mktime to nadal timestamp!
zoltar08
Dzięki thek!
Co prawda już to zrobiłem ale w bardziej prymitywny sposób:

  1. $rok = date('Y');
  2. $wielk = date("Y-m-d", easter_date($rok));
  3.  
  4. $bc = strtotime($wielk)+5270400;
  5. $zs = strtotime($wielk)+4320000;
  6.  
  7. echo date('d m', $bc)."<br>"; //Boze cialo
  8.  
  9. echo date("d m", $zs); // zielone swiatki
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.