Bonjour,
J'aurais besoin d'avis éclairés car je ne vois pas ce qui se passe.
J'ai une table MYSQL qui contient un champ "diffusion" qui peut contenir soit "Hebdo" ou "Unique" et un champ "date" formaté en DATE (ex: 2011-12-15) qui contient une date que si le champ "diffusion" est "Unique".
Je récupère ces informations dans un tableau et je voudrais afficher ce champ "Unique" que si la date est supérieure ou égale à la date du jour.
Donc j'ai le code suivant :
for( $j=0;$j<sizeof($arr_table_result);$j++ )
{
if( $arr_table_result[$j]['diffusion'] == 'Unique' )
{
if( strtotime( $arr_table_result[$j]['date'] ) < strtotime( date("Y-m-d") ))
{
//echo "$j\n";
unset( $arr_table_result[$j] );
}
}
}
$arr_table_result = array_values( $arr_table_result );
Seulement le problème est que les deux dernières dates antérieures à la date du jour s'affichent alors que si je fait un echo de $j au lieu de unset() j'ai bien tous les ids du tableau qui sont inférieurs à la date du jour qui s'affichent. Donc j'en déduis sauf erreur de ma part que ma condition est bonne.
Donc je ne vois pas pourquoi la fonction unset() ne me supprime pas les deux dernières dates.
PS: j'ai essayé en mettant :
setlocale (LC_TIME, 'fr_FR', 'fr_FR@euro', 'fr', 'FR', 'fra_fra', 'fra');
//date_default_timezone_set('UTC');
date_default_timezone_set('Europe/Paris');
Mais rien n'y fait, j'ai toujours le bug.
J'ai oublié de préciser que si je fait un echo de strtotime( $arr_table_result[$j]['date'] ) , elles sont bien inférieures à strtotime( date("Y-m-d") ). ????