Witam, tworzę stronę internetową i zależałoby mi na tym aby logo zmieniało się automatycznie zależnie od pory roku. Naskrobałem coś takiego:
$wiosna = new DateTime("2013-03-21 00:00:00");
$lato = new DateTime("2013-06-22 00:00:00");
$jesien = new DateTime("2013-09-23 00:00:00");
$zima = new DateTime("2013-12-22 00:00:00");
$dzis = date ("Y-m-d H:i:s");
if ($dzis < $wiosna && $dzis > $zima) { echo ''; }
if ($dzis < $lato && $dzis > $wiosna) { echo ''; }
if ($dzis < $jesien && $dzis > $lato) { echo ''; }
if ($dzis < $zima && $dzis > $jesien) { echo ''; }[/code]
ale powyższy twór nie działa. Czy zna ktoś sposób na wykonanie takiej operacji. Jeśli zna ktoś sposób na js i byłby w stanie wyjaśnić mi to łopatologicznie to chętnie zapoznam się z poradami.
var_dump($zima);var_dump($dzis); [/code]
[quote]
object(DateTime)#4 (3) {
["date"]=
string(19) "2013-12-22 00:00:00"
["timezone_type"]=
int(3)
["timezone"]=
string(3) "UTC"
}
string(19) "2013-03-10 23:21:45"
[/quote]
W "porach roku" masz obiekty danej klasy, a "dzis" natomiast to zwykły string. Dziwne jest porównywanie tego.
Prostując to:
http://php.net/manual/pl/datetime.construct.php - Brak parametru oznacza "teraz". Dla dziś także wywołamy instancję tej klasy.
http://php.net/manual/pl/datetime.diff.php - "Przykład #2 DateTime object comparison" - więc obiekty tej klasy można tak porównywać jak Ty chcesz.
Tylko jeszcze jedna uwaga - potrzebujesz dwie daty na zimę - tą która rozpoczęła się w roku poprzednim, i tą która zacznie się w tym roku.
Dodając jeszcze rok uzyskany przez funkcję, zamiast wbity w kod, mamy coś podobnego jak Ty podałeś:
[code=php]?php= date("Y");$wiosna = new DateTime($rok."-03-21 00:00:00");$lato = new DateTime($rok."-06-22 00:00:00");$jesien = new DateTime($rok."-09-23 00:00:00");$zima = new DateTime(($rok-1)."-12-22 00:00:00");$zima2 = new DateTime($rok."-12-22 00:00:00");$dzis = new DateTime();