[PHP] Jak zmienić tło strony w zależności od aktualnej godziny?
Chcesz mieć możliwość zmiany tła strony w zależności od pory dnia, co umożliwia stworzenie np. ciemniejszego serwisu w nocy, a jasnego w dzień.
Wyboru aktualnej tapety na stronie możesz dokonywać z dokładnością co do sekundy (przykład poniżej), ale oczywiście tak dokładne wyliczanie nie jest zwykle potrzebne. Warto przyjąć do manipulacji tapetami rozsądną jednostkę czasu, czyli godzinę.
Umożliwia ona podkładanie różnych tapet w większych przedziałach czasu np. pomiędzy 18.00 a 22.00 może być tapeta wieczorna, a w godzinach rannych - poranna. W dzień można pokazać białe tło strony, aby była bardziej czytelna. Zobacz jak to zrobić:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head><meta http-equiv="content-type"
content="text/html; charset=iso-8859-2">
<title>tytuł strony</title></head>
<?
$godzina = date("H");
if (($godzina>=18)and($godzina<=22)) $tlo='background="wieczor.gif"';
if (($godzina>=23)and($godzina<=6)) $tlo='background="noc.gif"';
if (($godzina>=7)and($godzina<=16)) $tlo='bgcolor=white';
if ($godzina==17) $tlo='background="herbata.gif"';
echo "<body $tlo>";
?>
<p>
dalsza część strony
<p></body></html>
Aby ustalić tapetę na stronie, w elemencie body wykorzystamy atrybut background określający plik graficzny i bgcolor dla nazw kolorów.
Funkcja date("H") zwraca aktualną godzinę. Teraz wystarczy sprawdzić w jakim zakresie znajdzie się aktualna godzina i przypisać odpowiednie tło, a następnie wstawić je do elementu body.
Od godz. 18.00 do 22.59 mamy na stronie wieczór, od 23.00 do 6.59 rano jest noc, od 7.00 do 16.59 dzień (dajemy kolor biały, zamiast tapety graficznej), a przez całą godzinę od 17.00 do 17.59 oddajemy się parzeniu herbaty, więc niech będzie tapeta herbaciana.
Jeżeli chcesz regulować zakresy dokładniej, wystarczy dodać jeszcze minuty i sekundy:
<?
$godzina = sprintf("%02d:%02d:%02d",date("H"),date("i"),date("s"));
if (($godzina>="15:00:00")and($godzina<="15:13:11")) {
$tlo='bgcolor=red';
} else {$tlo='bgcolor=white';}
?>
Teraz przez 13 minut i 11 sekund, od 15:00:00 do 15:13:11 użytkownicy wchodzący do serwisu będą widzieć czerwone tło. W ciągu pozostałych godzin tłem będzie biały kolor.
Modyfikując przykłady możesz osiągnąć ciekawe efekty, ale pamiętaj, że przesadzanie z ilością tapet może nieco przeszkadzać odwiedzającym i trochę ich dezorientować...