Aide pour script php SVP (conversion de date)

Résolu/Fermé
diaboly Messages postés 79 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 10 février 2012 - 28 mai 2009 à 10:10
diaboly Messages postés 79 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 10 février 2012 - 28 mai 2009 à 14:22
Bonjour,

J'ai un fichier contenant 1450 lignes, chaque ligne contient une date au format français (jj/mm/aaaa)
Je voudrais remplacer chaque ligne de ce fichier par la même date mais au format SQL (aaaa-mm-jj)

voici mon code:
<?php 

$fichier = @fopen('P:\php\dates.txt','r+');
if (!$fichier) die("Impossible d'ouvrir le fichier"); 

function dateUS($date) 
	{ 		
		$split = split("/",$date);
		$jour = $split[0];
		$mois = $split[1];
		$annee = $split[2];
		return  "$annee"."-"."$mois"."-"."$jour";	//retourne la date en US dans la variable date
	}
	
while (!feof($fichier)) // tant qu'on est pas à la fin du fichier texte.
{ 
	$ligne = fgets($fichier, 500);
	if (!feof($fichier)) $date=$ligne;
	fputs($fichier,dateUS($date));
}
fclose($fichier); 

?>


La fonction dateUS est surement bonne car lorsque je la teste seule, hors de la boucle while, elle me renvoie une date convertie correctement !
Alors que lorsque j'execute mon code en partant de ça:
01/01/1992
01/04/1996
01/01/1998
01/01/1998


j'ai un resultat qui donne ceci:

01/01/1992
1992
-01-0101/01/1998
1998
-01-0101/01/1998
1998
-01-0101/09/1998

C'est inexploitable....

il zappe carrément le 1996...
A voir également:

1 réponse

diaboly Messages postés 79 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 10 février 2012 22
28 mai 2009 à 14:22
<?php 

$fichier = @fopen('P:\php\dates.txt','r+');  // chemin du fichier texte a ouvrir
$fichier_US = @fopen('P:\php\dates_us.txt','a+');
if (!$fichier) die("Impossible d'ouvrir le fichier"); 
function dateUS($date) 
	{ 		
		$split = split("/",$date); //sépare les champs délimités par un "/" et les met ds un tableau contenu ds la variable split
		$jour = $split[0];
		$mois = $split[1];
		$annee = $split[2];
		return  "$annee"."-"."$mois"."-"."$jour\r\n";	//retourne la date en US dans la variable date
	}
while (!feof($fichier)) // tant qu'on est pas à la fin du fichier texte.
{ 
	$ligne = fgets($fichier, 500); // tu lis la ligne
	fputs($fichier_US,dateUS(trim($ligne)));
}
fclose($fichier); 
fclose($fichier_US);
?>


http://www.commentcamarche.net/forum/affich 3140785 excel conversion de date?dernier#dernier
0