Hola,
El problema de tu codigo es que en la 3 sentencia:
se para el codigo si son mas de las 8, ya que en el momento que son mas de las 8 esa condicion se cumple y ya no sigue
prueba con estas modificaciones
Código PHP:
<?php
$hora1=date("H:i");
echo 'Son las ' . $hora1;
$hora=date('H');
if ($hora < '8')
echo 'Es otro día';
else if ($hora=='8')
echo 'Buenos días1';
else if (($hora > '8')&&($hora < '13'))
echo 'Buenos días2';
else if ($hora=='13')
echo 'Buen provecho';
else if (($hora >'13')&&($hora < '15'))
echo 'Buen provecho';
else if ($hora=='15')
echo 'Buenas tardes';
else if (($hora > '15')&&($hora < '20'))
echo 'Buenas tardes';
else if ($hora=='20')
echo 'Buenas noches';
else if ($hora >'20')
echo 'Buenas noches';
?>
Saludos