Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

[Resolu] php: changer le format de la date

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
h4ni
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Juil 2005
Messages: 463

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:00    Sujet du message: [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


Dernière édition par h4ni le Mer Avr 09, 2008 13:39; édité 1 fois
 
h4ni Visiter le site web du posteur
steph2908
Nouveau WRInaute

Inscrit le: 19 Déc 2007
Messages: 15

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:05    Sujet du message: [Resolu] php: changer le format de la date

voici un cheminement possible:

1ere etape : convertir en timestamp ta date (mktime)
2eme etape: afficher dans le format que tu souhaite (date ou strftime)
 
steph2908
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2752
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:06    Sujet du message: [Resolu] php: changer le format de la date

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.
 
UsagiYojimbo Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12859
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:09    Sujet du message: [Resolu] php: changer le format de la date

Code:
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
 
e-kiwi Visiter le site web du posteur
steph2908
Nouveau WRInaute

Inscrit le: 19 Déc 2007
Messages: 15

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:23    Sujet du message: [Resolu] php: changer le format de la date

comme chacun y va de son code
Code:

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)
 
steph2908
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12859
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:26    Sujet du message: [Resolu] php: changer le format de la date

disons que moi c'est la fonction "retourne moi la date complete en francais"

ex : "jeudi 12 Janvier 1967 à 8h32"
 
e-kiwi Visiter le site web du posteur
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2752
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:28    Sujet du message: [Resolu] php: changer le format de la date

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.
 
UsagiYojimbo Visiter le site web du posteur
steph2908
Nouveau WRInaute

Inscrit le: 19 Déc 2007
Messages: 15

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:33    Sujet du message: [Resolu] php: changer le format de la date

et ceci:
Code:
strftime("Le %A %d %B %Y a %Hh%M",$my_date);

ca fait le café? Twisted Evil

et du coup une classe Date est rapidement codée Razz
 
steph2908
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2752
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:35    Sujet du message: [Resolu] php: changer le format de la date

steph2908 a écrit:
et ceci:
Code:
strftime("Le %A %d %B %Y a %Hh%M",$my_date);

ca fait le café? Twisted Evil

et du coup une classe Date est rapidement codée Razz


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 Visiter le site web du posteur
h4ni
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Juil 2005
Messages: 463

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:36    Sujet du message: [Resolu] php: changer le format de la date

Merci a vous tous , j'ai fini par utiliser le code de steph
 
h4ni Visiter le site web du posteur
steph2908
Nouveau WRInaute

Inscrit le: 19 Déc 2007
Messages: 15

URL permanente de ce messagePosté le : Mer Avr 09, 2008 13:38    Sujet du message: [Resolu] php: changer le format de la date

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 Wink
 
steph2908
FloBaoti
WRInaute passionné
WRInaute passionné

Inscrit le: 30 Avr 2006
Messages: 625
Localisation: Montpellier

URL permanente de ce messagePosté le : Mer Avr 09, 2008 15:27    Sujet du message: [Resolu] php: changer le format de la date

Le explode consomme des ressources pour rien, vu que la chaine d'entrée fait toujours la même taille et on sait exactement où sont les informations (ex: année à partir du caractère 0 et sur 4 caractères)... substr()
 
FloBaoti Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12859
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Avr 09, 2008 15:29    Sujet du message: [Resolu] php: changer le format de la date

vous m'expliquerai sur un mutualisé comment vous arrivez au même résultat que moi , avec une date en francais
 
e-kiwi Visiter le site web du posteur
steph2908
Nouveau WRInaute

Inscrit le: 19 Déc 2007
Messages: 15

URL permanente de ce messagePosté le : Mer Avr 09, 2008 15:37    Sujet du message: [Resolu] php: changer le format de la date

e-kiwi a écrit:
vous m'expliquerai sur un mutualisé comment vous arrivez au même résultat que moi , avec une date en francais


fonctionne sur un plan ovh...
 
steph2908
dudo
WRInaute impliqué
WRInaute impliqué

Inscrit le: 10 Jan 2004
Messages: 332

URL permanente de ce messagePosté le : Mer Avr 09, 2008 15:53    Sujet du message: 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
 
dudo Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort