2011-12-28 9 views
11

Ho bisogno di echo qualche codice o messaggio su una pagina a seconda dell'ora del giorno. Proprio come un messaggio di benvenuto, "buona sera", o "buon pomeriggio"codice di esecuzione a seconda dell'ora del giorno

Non so a caldo di raggruppare alcune ore e assegnare un messaggio a ciascun gruppo come

dalle 13:00:00 alle 16:00:00 = "buon pomeriggio" e 4:00:01-08:00:00 = "buona sera"

finora ho:

<?php 
date_default_timezone_set('Ireland/Dublin'); 
$date = date('h:i:s A', time()); 
if ($date < 05:00:00 AM){ 
echo 'good morning'; 
} 
?> 

Ma io non lo so come passare le ore vanno un messaggio.

risposta

29
 

    <?php 
    /* This sets the $time variable to the current hour in the 24 hour clock format */ 
    $time = date("H"); 
    /* Set the $timezone variable to become the current timezone */ 
    $timezone = date("e"); 
    /* If the time is less than 1200 hours, show good morning */ 
    if ($time < "12") { 
     echo "Good morning"; 
    } else 
    /* If the time is grater than or equal to 1200 hours, but less than 1700 hours, so good afternoon */ 
    if ($time >= "12" && $time < "17") { 
     echo "Good afternoon"; 
    } else 
    /* Should the time be between or equal to 1700 and 1900 hours, show good evening */ 
    if ($time >= "17" && $time < "19") { 
     echo "Good evening"; 
    } else 
    /* Finally, show good night if the time is greater than or equal to 1900 hours */ 
    if ($time >= "19") { 
     echo "Good night"; 
    } 
    ?> 
 
+0

Qual è lo scopo della variabile $ timezone? Non è usato nel codice qui sotto è inizializzazione;) –

9
$hour = date('H', time()); 

if($hour > 6 && $hour <= 11) { 
    echo "Good Morning"; 
} 
else if($hour > 11 && $hour <= 16) { 
    echo "Good Afternoon"; 
} 
else if($hour > 16 && $hour <= 23) { 
    echo "Good Evening"; 
} 
else { 
    echo "Why aren't you asleep? Are you programming?"; 
} 

... dovrebbe iniziare (timezone insensitive).

+0

pomeriggio dovrebbe essere tra 11 e 16 ** ** ore, non è vero? – zerkms

+0

@zerkms - Wow hai ragione. Risolto e grazie! – Ben

2
$dt = new DateTime(); 

$hour = $dt->format('H'); 

ora controllare questo $hour nella tua fascia di mattina, pomeriggio, sera o di notte e di conseguenza dare il messaggio

4

ho pensato che questa discussione potrebbe usare una bella-liner:

$hour = date('H'); 
$dayTerm = ($hour > 17) ? "Evening" : ($hour > 12) ? "Afternoon" : "Morning"; 
echo "Good " . $dayTerm; 

Se si controlla prima l'ora più alta (sera), è possibile eliminare completamente i controlli dell'intervallo e creare un'istruzione condizionale piacevole e più compatta.

1
date_default_timezone_set('Asia/Dhaka'); 
$time=date('Hi'); 

if (($time >= "0600") && ($time <= "1200")) { 
    echo "Good Morning"; 
} 

elseif (($time >= "1201") && ($time <= "1600")) { 
    echo "Good Afternoon"; 
} 

elseif (($time >= "1601") && ($time <= "2100")) { 
    echo "Good Evening"; 
} 

elseif (($time >= "2101") && ($time <= "2400")) { 
    echo "Good Night"; 
} 
enter code here 
else{ 
    echo "Why aren't you asleep? Are you programming?<br>"; 
} 

?>

Problemi correlati