2011-12-28 20 views
11

Necesito hacer eco de algún código o mensaje en una página, dependiendo de la hora del día. Al igual que un mensaje de bienvenida, "buenas tardes" o "buenas tardes"ejecutar el código según la hora del día

No sé caliente para agrupar ciertas horas y asignar un mensaje a cada grupo como

de 01:00:00 pm a 04:00:00 pm = "buenas tardes" y 4:00:01-8:00:00 = "buena tarde"

hasta ahora tengo:

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

Pero no sé cómo pasar el rango de horas y los mensajes.

Respuesta

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

¿Cuál es el propósito de la variable $ timezone? No se usa en el código a continuación, es inicialización;) –

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?"; 
} 

... debería comenzar (la zona horaria no es sensible).

+0

tarde se supone que es de entre 11 y 16 ** ** horas, ¿verdad? – zerkms

+0

@zerkms - Uff, tienes razón. ¡Reparado y gracias! – Ben

2
$dt = new DateTime(); 

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

ahora mira esto $hour en su rango de mañana, tarde, noche o de la noche y, en consecuencia dar el mensaje

4

pensé que este hilo podría utilizar una buena de una sola línea:

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

Si marca la hora más alta primero (tarde), puede eliminar por completo las comprobaciones de rango y hacer una declaración condicional agradable y más compacta.

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>"; 
} 

?>

Cuestiones relacionadas