[Resolu] php: changer le format de la date
15 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[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: 5189
- Inscription: Mer Nov 23, 2005 10:38
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.
- 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
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: 5189
- Inscription: Mer Nov 23, 2005 10:38
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.
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: 5189
- Inscription: Mer Nov 23, 2005 10:38
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.
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
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Changer d'hébergeur web sans pénaliser son référencement
- Ayez une bonne politique de format d'URL : conseil n°6 en référencement
- L'underscore bientôt un séparateur de mots pour Google ?
- Testez AdSense sans même vous inscrire !
- Google reconnait-il les différentes formes de mots ? (singulier/pluriel et autres)
- L'URL Rewriting expliqué aux débutants
- Outil de test d'indexation Google + analyse de l'âge d'un site
- Matt Cutts déclare la guerre au spamdexing en français (et autres langues)
- Interview de Fred Cavazza le mercredi 21 mars 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





le forum