bug inexpliqué comparaison date

Petit nouveau ! | 1 Messages

15 déc. 2011, 03:55

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") ). ????

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 09:17

Fais un var_dump() avant et après ta boucle pour debugguer et voir ce qui se passe vraiment.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 déc. 2011, 10:35

question bête mais pourquoi ne pas filtrer directement avec le SGBD ? cc'est fait pour ça :mrgreen:

sinon regarde datetime::diff


@+
Il en faut peu pour être heureux ......