[Resolu] php: changer le format de la date
15 messages
• Page 1 sur 1
-

h4ni - WRInaute occasionnel

- Messages: 486
- Inscription: 11 Juil 2005
[Resolu] php: changer le format de la date
Bonjour
j'utilise un script php qui génère une liste des derniers articles dans un fichier xml , dans ce dernier j'ai la date de creation de l'article qui es sous forme de
<time>2008-04-09 00:00:00</time>
j'aimerai bien convertir cette date pour obtenir
<time>09-04-2008 00:00:00</time>
quelqu'un a une idée?
Merci d'avance
j'utilise un script php qui génère une liste des derniers articles dans un fichier xml , dans ce dernier j'ai la date de creation de l'article qui es sous forme de
<time>2008-04-09 00:00:00</time>
j'aimerai bien convertir cette date pour obtenir
<time>09-04-2008 00:00:00</time>
quelqu'un a une idée?
Merci d'avance
Dernière édition par h4ni le Mer Avr 09, 2008 13:39, édité 1 fois.
-

UsagiYojimbo - WRInaute accro

- Messages: 8304
- Inscription: 23 Nov 2005
Un truc à base d'explode devrait faire ce que tu veux :
1) un premier explode sur la chaine "" pour récupérer la première partie de la date
2) un second explode sur la chaine "-" pour récupérer les trois parties de la date
Et ensuite tu recomposes le tout comme bon te semble.
1) un premier explode sur la chaine "" pour récupérer la première partie de la date
2) un second explode sur la chaine "-" pour récupérer les trois parties de la date
Et ensuite tu recomposes le tout comme bon te semble.
-

e-kiwi - Modérateur

- Messages: 15544
- Inscription: 23 Déc 2003
- Code: Tout sélectionner
function datefr($date_sql)
{
// Declaration du tableau des noms de jours en Francais
//-------- ici
$j_fr['Sunday'] = "Dimanche";
$j_fr['Monday'] = "Lundi";
$j_fr['Tuesday'] = "Mardi";
$j_fr['Wednesday'] = "Mercredi";
$j_fr['Thursday'] = "Jeudi";
$j_fr['Friday'] = "Vendredi";
$j_fr['Saturday'] = "Samedi";
// Declaration du tableau des noms de jours en Francais
$m_fr['01'] = "Janvier";
$m_fr['02'] = "Fevrier";
$m_fr['03'] = "Mars";
$m_fr['04'] = "Avril";
$m_fr['05'] = "Mai";
$m_fr['06'] = "Juin";
$m_fr['07'] = "Juillet";
$m_fr['08'] = "Aout";
$m_fr['09'] = "Septembre";
$m_fr['10'] = "Octobre";
$m_fr['11'] = "Novembre";
$m_fr['12'] = "Decembre";
$la_date = explode(' ', $date_sql); // on decompose la date SQL
if (isset($la_date['1'])) $heure_sql= explode(':', $la_date['1']); // On prend la partie heure
$date_sql = explode('-', $la_date[0]); // On prend la partie date
if (substr($date_sql[2], 0, 1) == '0' ) // On verifie si le 1er caractere est 0 dans le numero du mois
{
// si oui alors on supprime le 1er caractere
$date_sql[2] = substr($date_sql[2], 1, strlen($date_sql[2]) -1);
}
if (isset($heure_sql[0])) $heure = $heure_sql[0]; // La variable de l'heure
if (isset($heure_sql[1])) $minutes = $heure_sql[1]; // La variable des minutes
if (isset($heure_sql[2])) $secondes = $heure_sql[2]; // la variable des secondes
$annee = $date_sql[0]; // La variable des annees
$num_mois = $date_sql[1]; // La variable du numero du mois
$nom_mois = $m_fr[$num_mois]; // La variable du mois en francais
$num_jour = $date_sql[2]; // Le numero du jour
if (($num_jour < 10) and ($num_jour > 0)) $num_jour="0".$num_jour;
$nom_jour = $j_fr[date("l", mktime(0, 0, 0, $num_mois, $num_jour, $annee))];
// Le nom du jour en francais
//$date = "$nom_jour $num_jour $nom_mois $annee";
$date = "$num_jour-$num_mois-$annee"; // On forme la date
if (isset($heure_sql[0])) $heure = "à $heure:$minutes:$secondes"; // On forme l'heure
else $heure='';
$date_fr=$date;
if ($heure != '::') $date_fr= $date_fr.' '.$heure;
//retour de cette variable
return $date_fr;
}
à adapter si tu veux le nom ou numéro de jour par exemple
- steph2908
- Nouveau WRInaute

- Messages: 15
- Inscription: 19 Déc 2007
comme chacun y va de son code
en 5 lignes tu as la meme chose.. et c'est multilingue tres facilement...
vive la fonction strftime (http://fr3.php.net/manual/fr/function.strftime.php)
- Code: Tout sélectionner
setlocale (LC_TIME, "fr@euro");
$val = explode(" ",$my_date);
$date = explode("-",$val[0]);
$time = explode(":",$val[1]);
$timestamp=mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]);
strftime("%d %B %Y",$timestamp);
en 5 lignes tu as la meme chose.. et c'est multilingue tres facilement...
vive la fonction strftime (http://fr3.php.net/manual/fr/function.strftime.php)
-

UsagiYojimbo - WRInaute accro

- Messages: 8304
- Inscription: 23 Nov 2005
e-kiwi a écrit:disons que moi c'est la fonction "retourne moi la date complete en francais"
ex : "jeudi 12 Janvier 1967 à 8h32"
sauf qu'en utilisant LC_TIME, tu as possibilité de t'affranchir de tes tableaux de paramètrages, qui contiennent du coup le libellé du jour, du mois, etc.
- steph2908
- Nouveau WRInaute

- Messages: 15
- Inscription: 19 Déc 2007
et ceci:
ca fait le café?
et du coup une classe Date est rapidement codée
- Code: Tout sélectionner
strftime("Le %A %d %B %Y a %Hh%M",$my_date);
ca fait le café?
et du coup une classe Date est rapidement codée
-

UsagiYojimbo - WRInaute accro

- Messages: 8304
- Inscription: 23 Nov 2005
steph2908 a écrit:et ceci:
- Code: Tout sélectionner
strftime("Le %A %d %B %Y a %Hh%M",$my_date);
ca fait le café?
et du coup une classe Date est rapidement codée
Sauf que ton strftime il nécessite au préalable de modifier la constante LC_TIME. Sinon ça affiche en anglais...
Par contre je préfère aussi procéder comme ça.
- steph2908
- Nouveau WRInaute

- Messages: 15
- Inscription: 19 Déc 2007
UsagiYojimbo a écrit:Sauf que ton strftime il nécessite au préalable de modifier la constante LC_TIME. Sinon ça affiche en anglais...
évidemment mais le fichier de traduction pour chaque langue se limite a quelques lignes...
la LC_TIME et le (ou les) format de sortie désiré que l'on peut variabiliser
- dudo
- WRInaute occasionnel

- Messages: 453
- Inscription: 10 Jan 2004
Re: [Resolu] php: changer le format de la date
Bonjour,
Je rebondis sur cette discussion, car je mets en place une api et j'ai un souci aves les dâtes sous PHP5
echo " DATE: ".echo " DATE: ".$expo->date."\n" ;
la variable me fournit directemement un affichage US
du type : Wed, 02 Apr 2008 23:15:17 GMT
Comment je peux manipuler $expo->date pour obtenir
un affichage français svp ?
J'ai bien essayé
// Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');
sans résultats
merci
Je rebondis sur cette discussion, car je mets en place une api et j'ai un souci aves les dâtes sous PHP5
echo " DATE: ".echo " DATE: ".$expo->date."\n" ;
la variable me fournit directemement un affichage US
du type : Wed, 02 Apr 2008 23:15:17 GMT
Comment je peux manipuler $expo->date pour obtenir
un affichage français svp ?
J'ai bien essayé
// Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');
sans résultats
merci
15 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- date php [resolu, merci ! ]
- {RESOLU} [PHP] Problème étrange... date(), time()
- changer l'url html en php ( resolu )
- Changer le header de son site en fonction de la date
- php-Date, heure ou timestamps en php.... merci de m'aider ;)
- [résolu]convertir une date
- [RESOLU] transformer une date
- [résolu]script date + X mois
- [resolu]date en fr comprend pas comment convertir
- Ajouter des jours à une date [RESOLU]
- Changer d'hébergeur web sans pénaliser son référencement - 17-10-2005
- Ayez une bonne politique de format d'URL : conseil n°6 en référencement - 04-08-2008
- Testez AdSense sans même vous inscrire ! - 18-12-2003
- L'underscore bientôt un séparateur de mots pour Google ? - 24-07-2007
- Outil de test d'indexation Google + analyse de l'âge d'un site - 15-02-2008
- Google reconnait-il les différentes formes de mots ? (singulier/pluriel et autres) - 04-10-2005
- L'URL Rewriting expliqué aux débutants - 04-08-2008
- Interview de Fred Cavazza le mercredi 21 mars 2007 - 05-03-2007
Consultez la description détaillée des produits ou services de Google suivants : Google Patent Search
- Tester l'indexation récente d'un site dans Google
Cet outil vous permet de connaître une estimation de l'ancienneté d'un site : il fournit la date à laquelle Google l'a indexé la première fois (et la même chose pour archive.org).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

