[PHP] Jak dla wybranego przedziału czasu wykonać określone instrukcje, np. zawsze w sobotę od 09.00 do 10.00 wypisać jakiś komunikat?
Chcesz wykonać określone instrukcje PHP, wypisać tekst lub pokazać grafiki tylko w określonym przedziale czasu.
Ten bardzo prosty skrypt pozwala znacznie uatrakcyjnić witrynę i spowodować, że będzie sprawiała wrażenie serwisu inteligentnego, dostosowującego się do sytuacji. Możesz w godzinach pracy Twojej firmy pokazywać okienko kontaktowe lub chat, które w innych dniach i godzinach nie będą widoczne (bo i tak nikt natychmiast nie odpowie).
Możesz wykonać szereg fajnych powitań, które pojawią się tylko w określonych godzinach dnia. Możesz też stworzyć grafiki, które będą w tle zmieniać się codziennie na inną. Możesz informować, że właśnie trwa dzisiaj promocja usług, która sama zniknie ze strony o północy.
Możesz... tak, Twoja wyobraźnia podpowie Ci, do czego jeszcze warto wykorzystać ten skrypt.
<?
$data = sprintf("%04d.%02d.%02d-%02d:%02d",
date("Y"), date("m"),date("d"),date("H"),date("i"));
$czas = sprintf("%02d:%02d",date("H"),date("i"));
$dzien = date("w"); // od 0 - niedziela, do 6 - sobota
if ($data>"2003.11.27-12:00" and $data<"2003.11.30-12:00") {
echo "Ten napis zobaczysz w dniach od 2003.11.27, od godz. 12:01
do dnia 2003.11.30 do godz. 11.59";
}
if ($czas>"09:10" and $czas<"13:16") {
echo "Ten napis zobaczysz codziennie w godzinach od 09:11 do 13:15";
}
if ($dzien=="6") {
echo "Ten napis zobaczysz tylko w soboty";
}
if ($dzien=="2" and $czas>"09:10" and $czas<"13:16") {
echo "Ten napis zobaczysz tylko we wtorki, w godzinach od 09:11 do 13:15";
}
if ($czas>"09:00" and $czas<"10:00") {
echo "Ten napis zobaczysz codziennie w godzinach od 09:01 do 09:59";
} else if ($czas>"10:00" and $czas<"11:00") {
echo "Ten napis zobaczysz codziennie w godzinach od 10:01 do 10:59";
} else if ($czas>"15:00" and $czas<"17:00") {
echo "Ten napis zobaczysz codziennie w godzinach od 15:01 do 16:59";
} else {
echo "Ten napis zobaczysz w pozostałych godzinach dnia";
}
?>
Jak widzisz, sposób jest banalny. Polega na sprawdzeniu, czy aktualna godzina, data lub dzień, mieszczą się w podanym zakresie. Jeżeli tak, warunek jest spełniony i podane instrukcje mogą się wykonać. Nie ważne czy będą one wypisywały tekst czy łączyły się z innym serwerem lub pokazywały zdjęcia.
Wystarczy za pomocą funkcji date() pobrać odpowiednie parametry czasu, ewentualnie dodatkowo funkcją sprintf() stworzyć z nich ładnie sformatowany łańcuch znaków do porównania. Kilka podanych przykładów z pewnością pozwoli Ci tworzyć dalsze kombinacje przedziałów czasu, bo mechanizm jest zawsze taki sam - trzeba porównać daty, godziny lub dni.