Algo en PHP - Page 2
Résolu
Précédent
- 1
- 2
Ahhhhh ca marche !!!!!
Tout ca pour une histoire de majuscule-minuscule :/
Ce qui est bizarre quand même c'est que ca marchait très bien avec la majuscule sur mon pc...
Fin bon, le principal c'est que ca marche :)
Merci bien Alain_42.
Tout ca pour une histoire de majuscule-minuscule :/
Ce qui est bizarre quand même c'est que ca marchait très bien avec la majuscule sur mon pc...
Fin bon, le principal c'est que ca marche :)
Merci bien Alain_42.
Par contre ça ne marchera plus sur ton PC, c'est le cas chez moi
car bizarrement la date du fichier csv 11/02/10 ets transformée lors de la lecture par php en 11/02/2010
donc avec la modif Y en y ça ne marche plus
expliquation:
dans un fichier excel ce qui est affiché n'est pas exactement ce qui est contenu dans la cellule
pour une date, tu peux afficher 11/02/10 ou 11/02/2010 la valeur contenue dans la cellule est la même
d'ou l'utilité des "
car bizarrement la date du fichier csv 11/02/10 ets transformée lors de la lecture par php en 11/02/2010
donc avec la modif Y en y ça ne marche plus
expliquation:
dans un fichier excel ce qui est affiché n'est pas exactement ce qui est contenu dans la cellule
pour une date, tu peux afficher 11/02/10 ou 11/02/2010 la valeur contenue dans la cellule est la même
d'ou l'utilité des "
je reviens
donc pour contourner le pb et que ça marche dans tous les cas:
il faut adapter cette partie:
ainsi si php transforme pas 10 en 2010 on rajoute 20 devant sinon on laisse 2010
et remettre le Y, pour comparer dans tous les cas avec les 4 ch
donc pour contourner le pb et que ça marche dans tous les cas:
il faut adapter cette partie:
//timestamp de la datea
$datea = explode("/", $colonne[17]);
if(strlen($datea[2])<4){
//si annee au format aa
$dateb = mktime(0, 0, 0, $datea[1], $datea[0], '20'.$datea[2]);
}else{
//si annee au format aaaa
$dateb = mktime(0, 0, 0, $datea[1], $datea[0], $datea[2]);
}
//datea dans l'array
$array_datesA[]=$dateb;
ainsi si php transforme pas 10 en 2010 on rajoute 20 devant sinon on laisse 2010
et remettre le Y, pour comparer dans tous les cas avec les 4 ch
//lignes des donnees correspondant à cette date
foreach($conteneur as $cle2=>$value2){
////TEST
echo 'Date dans l\'array des dates: '.date('d/m/Y',$value).' Date dans le conteneur: '.trim($value2[5]).'<br />';
/////
if(date('d/m/Y',$value) == trim($value2[5])){ //trim pour supprimer les espaces eventuels qui trainent en debut et fin
echo '<tr>';
echo '<td>'.$value2[0].'</td><td>'.$value2[1].'</td><td>'.$value2[2].'</td><td>'.$value2[3].'</td><td>'.$value2[4].'</td><td>'.$value2[5].'</td>';
echo '</tr>';
}
///////
}
Exact ca ne marche pas sur mon pc avec le y au lieu du Y.
Mais le code qu tu as mit si dessus ne marche pas plus. Le test renvoi bien les valeurs mais les tableaux sont toujours vide :/
Mais le code qu tu as mit si dessus ne marche pas plus. Le test renvoi bien les valeurs mais les tableaux sont toujours vide :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon finalement dans mon fichier csv j'ai modifier les paramètres des cellules contenant la date.
Comme tu l'as dit, ce qui est affiché dans une cellule n'est pas forcément ce que contient la cellule.
Je lui ai donc dit d'afficher en format jj/mm/aaaa au lieu de jj/mm/aa.
Du coup sur le pc du bureau ca fonctionne bien avec date('d/m/Y') mais plus avec date('d/m/y').
Pareil pour mon pc.
Je vais donc opter pour le date('d/m/Y'). C'est le seul qui marche pour les deux...pour le moment du moins.
Comme tu l'as dit, ce qui est affiché dans une cellule n'est pas forcément ce que contient la cellule.
Je lui ai donc dit d'afficher en format jj/mm/aaaa au lieu de jj/mm/aa.
Du coup sur le pc du bureau ca fonctionne bien avec date('d/m/Y') mais plus avec date('d/m/y').
Pareil pour mon pc.
Je vais donc opter pour le date('d/m/Y'). C'est le seul qui marche pour les deux...pour le moment du moins.
oui sinon opte pour la modif que je t'ai fait en dernier et qui adapte en fonction du format
if(strlen(......
if(strlen(......
Précédent
- 1
- 2