
Originariamente inviata da
Alhazred
Ti basta usare la funzione
date() per sapere giorno e ora e poi usare questi dati in una struttura if/else.
Non serve nient'altro.
Grazie per il suggerimento, ho optato di operare in questo modo :
Codice PHP:
<?phpdate_default_timezone_set('Europe/Rome');
$giorno = date("D");
$ora_attuale = date("H");
$minuti_attuali = date('i');
$min_tot= ($ora_attuale*60)+$minuti_attuali; //Trasformo le ore in minuti per poter sommare i minuti dell'ora corrente
$arb = "La Dottoressa riceve nello studio A";
$mar = "La Dottoressa riceve nello studio M";
$closed = "Lo studio è chiuso";
$lun_a_i = 14*60; //Orario di Lunedi "dalle 14 alle.... " moltiplicato per 60 minuti nello studio A
$lun_a_f = 17*60; // Orario di chiusura di Lunedi dello studio A
$lun_m_i = (17*60)+30; //Orario di inizio dello studio B
$lun_m_f = 20*60; //Chiusura studio B
$mar_a_i = 8*60; // e così via
$mar_a_f = 10*60;
$mar_m_i = (10*60)+30;
$mar_m_f = 13*60;
$mer_a_i = (10*60)+30;
$mer_a_f = 13*60;
$mer_m_i = 16*60;
$mer_m_f = 19*60;
$ven_a_i = 8*60;
$ven_a_f = 10*60;
$ven_m_i = (10*60)+30;
$ven_m_f = 13*60;
switch ($giorno) {
case "Sun":
echo $closed;
break;
case "Mon": //lunedì
if ($min_tot >= $lun_a_i and $min_tot <= $lun_a_f){
echo $arb;
}
elseif ($min_tot >= $lun_m_i and $min_tot <= $lun_m_f){
echo $mar;
}
break;
case "Tue":
if ($min_tot >= $mar_a_i and $min_tot <= $mar_a_f){
echo $arb;
}
elseif ($min_tot >= $mar_m_i and $min_tot <= $mar_m_f){
echo $mar;
}
break;
case "Wed":
if ($min_tot >= $mer_a_i and $min_tot <= $mer_a_f){
echo $arb;
}
elseif ($min_tot >= $mer_m_i and $min_tot <= $mer_m_f){
echo $mar;
}
break;
case "Thu":
echo $closed;
break;
case "Fri":
if ($min_tot >= $ven_a_i and $min_tot <= $ven_a_f){
echo $arb;
}
elseif ($min_tot >= $ven_m_i and $min_tot <= $ven_m_f){
echo $mar;
}
break;
case "Sat":
echo $closed;
break;
}
?>
lo script mi restituisce a video il messaggio $a o $b se le condizioni sono soddisfatte, ma nel caso volessi che mi restituisse $closed quando gli studi sono chiusi, cosa posso fare? Devo applicare un else alla fine di ogni ciclo if?
Codice PHP:
case "Mon": //lunedì
if ($min_tot >= $lun_a_i and $min_tot <= $lun_a_f){
echo $arb;
}
elseif ($min_tot >= $lun_m_i and $min_tot <= $lun_m_f){
echo $mar;
} else echo $closed;
break;
c'è un modo secondo te di snellire questo script?