C'est certainement un problème de type. Si date('H') donne l'heure avec un zéro, c'est qu'il te renvoie une chaîne de caractères ( string ). Dans ta condition tu compares donc des int ( 09, qui est automatiquement transformé en 9 ) et 18, avec une chaîne de caractères.
Je pense qu'il faudrait donc que tu transtypes ton heure en int avant de la comparer.
Peut-être que comme ça, ça pourrait marcher :
Si ça marche pas, utilise date('G') qui te renverra l'heure sans zéro, en gardant le transtypage dans ta condition. Si ensuite, tu as besoin d'afficher $heure avec un zéro, tu peux le faire en utilisant la fonction sprintf ( cf doc sur php.net ).Je pense qu'il faudrait donc que tu transtypes ton heure en int avant de la comparer.
Peut-être que comme ça, ça pourrait marcher :
Code PHP :
<?php
if ( (int)$heure >= 9.... )
A +