Prima o poi a tutti capita di imbattersi nella gestione delle date e dell'orario con PHP...
Spesso ci si trova un pò in difficoltà..
Nel caso di oggi, andremo a vedere come far eseguire una determinata attività ad un determinato orario..
Questo codice potrà tornare utile se si vuole far sapere al nostro sistema, se ad esempio, un negozio è aperto o chiuso..
Ma addentriamoci nel codice per capire meglio di cosa stò parlando..
// Recupero le ore e i minuti odierni
$ora_attuale = date("H");
$min_attuale = date("i");
// controllo il tipo di orario
// se è compreso tra 0 e 6 (orario notturno) incremento di un giorno
if(($ora_attuale >= 0)&&($ora_attuale < 6))
{
$timestamp_attuale = mktime ($ora_attuale,$min_attuale,00,date("m") ,date("d")+1,date("Y"));
}
else
{
$timestamp_attuale = mktime ($ora_attuale,$min_attuale,00,date("m") ,date("d"),date("Y"));
}
// imposto l'orario del giorno
$ora_start_giorno = "7";
$min_start_giorno = "00";
// imposto l'orario da visualizzare a video formattato
$orario_start_giorno = $ora_start_giorno.".".$min_start_giorno;
$time_stamp_ora_inizio_giorno = mktime ($ora_start_giorno,$min_start_giorno,00,date("m") ,date("d"),date("Y"));
$ora_end_giorno = "17";
$min_end_giorno = "59";
$orario_end_giorno = $ora_end_giorno.".".$min_end_giorno;
$time_stamp_ora_fine_giorno = mktime ($ora_end_giorno,$min_end_giorno,00,date("m") ,date("d"),date("Y"));
// imposto l'orario della sera
$ora_start_sera = "18";
$min_start_sera = "00";
// imposto l'orario da visualizzare a video formattato
$orario_start_sera = $ora_start_sera.".".$min_start_sera;
// ricavo il timestamp per fare i confronti con gli altri orari
$time_stamp_ora_inizio_sera = mktime ($ora_start_sera,$min_start_sera,00,date("m") ,date("d"),date("Y"));
$ora_end_sera = "23";
$min_end_sera = "59";
$orario_end_sera = $ora_end_sera.".".$min_end_sera;
$time_stamp_ora_fine_sera = mktime ($ora_end_sera,$min_end_sera,00,date("m") ,date("d"),date("Y"));
// imposto l'orario della notte
$ora_start_notte = "00";
$min_start_notte = "01";
// imposto l'orario da visualizzare a video formattato
$orario_start_notte = $ora_start_notte.".".$min_start_notte;
// ricavo il timestamp per fare i confronti con gli altri orari
$time_stamp_ora_inizio_notte = mktime ($ora_start_notte,$min_start_notte,00,date("m") ,date("d")+1,date("Y"));
$ora_end_notte = "06";
$min_end_notte = "00";
// imposto l'orario da visualizzare a video formattato
$orario_end_notte = $ora_end_notte.".".$min_end_notte;
// ricavo il timestamp per fare i confronti con gli altri orari
$time_stamp_ora_fine_notte = mktime ($ora_end_notte,$min_end_notte,00,date("m") ,date("d")+1,date("Y"));
// attraverso lo switch case, faccio un controllo sull'orario e ne deduco in che periodo della giornata siamo.
switch ($timestamp_attuale)
{
case (($timestamp_attuale > $time_stamp_ora_inizio_giorno) && ($timestamp_attuale < $time_stamp_ora_fine_giorno)):
// è giorno
echo "è giorno";
break;
case (($timestamp_attuale > $time_stamp_ora_inizio_sera) && ($timestamp_attuale < $time_stamp_ora_fine_sera)):
// è sera
echo "è sera";
break;
case (($timestamp_attuale > $time_stamp_ora_inizio_notte) && ($timestamp_attuale < $time_stamp_ora_fine_notte)):
// è notte
echo "è notte";
break;
}
Commenti