format de date

WRInaute passionné
Bonjour
La je suis un peu perdu dans toutes mes solutions.
J'ai un truc très long pour obtenir à partir de:
2005-11-23
--> 23 Novembre 2005

Pour avoir 2005-11-23 je fais $date=date("Y-m-d");

Y a t-il moyen de transformer en 23 Novembre 2005 sans avoir 20 lignes de codes?

Merci
 
WRInaute occasionnel
ça m'intéresse aussi, notamment pour transformer la variable date[0] de dotclear qui affiche brut ce type date : 2005-11-23
 
WRInaute impliqué
une date php en francais sans 10 lignes de codes? je ne crois pas que cela soit possible... car malheureusement les dates (mois et jours) par defaut sont en anglais
 
WRInaute accro
function datefr_mois($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[Thirsday] = "Jeudi";
$j_fr[Friday] = "Vendredi";
$j_fr[Saturday] = "Samedi";

// Declaration du tableau des noms de jours en Francais
$m_fr[1] = "Janvier";
$m_fr[2] = "Fevrier";
$m_fr[3] = "Mars";
$m_fr[4] = "Avril";
$m_fr[5] = "Mai";
$m_fr[6] = "Juin";
$m_fr[7] = "Juillet";
$m_fr[8] = "Aout";
$m_fr[9] = "Septembre";
$m_fr[10] = "Octobre";
$m_fr[11] = "Novembre";
$m_fr[12] = "Decembre";

$la_date = explode(' ', $date_sql); // on decompose la date SQL
$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);
}

$heure = $heure_sql[0]; // La variable de l'heure
$minutes = $heure_sql[1]; // La variable des minutes
$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
$nom_jour = $j_fr[date("l", mktime(0, 0, 0, $num_mois, $num_jour, $annee))];

etc...
là tu crée la chaine de caractere que tu veux en fonction du format que tu veux...
}
 
WRInaute occasionnel
oui c'est vrai, à la place de "novembre", ça me met "november"

Bon OK Tangui, je suis pret a accepter toutes les solutions même celle de 20 lignes de codes ;)
 
WRInaute accro
tangui a dit:
une date php en francais sans 10 lignes de codes? je ne crois pas que cela soit possible... car malheureusement les dates (mois et jours) par defaut sont en anglais

Hier je répondais à une question du genre:
https://www.webrankinfo.com/forum/t/transformer-les-donnees-de-pubdate.40649/

Pour avoir les dates dans la langue courante:
http://php.belnet.be/manual/fr/function.strftime.php
Formate une date/heure locale avec les options locales

Donc pas besoin de s'amuser à traduire les dates, php le fait très bien tout seul.
 
WRInaute impliqué
Bien joué, j'avais oublié cette fonction...
Ce qui nous donne donc:

Code:
<?

setlocale(LC_TIME, "fr"); //setlocale -- Modifie les informations de localisation


/*%A : nom complet du jour de la semaine (local).
%B : nom complet du mois (local).
%d : jour du mois en numérique (intervalle 01 à 31)
%Y : l'année, numérique, sur quatre chiffres */

$jour = strftime("%A");
$num_jour = strftime("%d");
$mois = strftime("%B");
$annee = strftime("%Y");

echo $jour." ".$num_jour." ".$mois." ".$annee;

//ou plus cours

$date=strftime("%A %d %B %Y");
echo $date;

?>

et voili :D

Edit: une petite erreur corrigé ;)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut