bug inexpliqué comparaison date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : bug inexpliqué comparaison date

Re: bug inexpliqué comparaison date

par moogli » 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


@+

Re: bug inexpliqué comparaison date

par xTG » 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.

bug inexpliqué comparaison date

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