Page 1 sur 1

Date et heure au format français

Posté : 03 déc. 2005, 13:05
par Sebe
Hello ... c'est encore moi ! ! !

Je voudrais que la date récupéré de ma BD apparaisse au format dit 'français' ... un truc comme Vendredi 11 novembre 2005 à 10 h00.

Jusqu'à maintenant, j'ai utilisé ce code:
<?php echo makeDateTime($row_course['date_heure'], 'l, jS F Y H:i'); ?>
ce qui me donne un truc comme cela
Friday, 11th November 2005 10:00
On peut voir le résultat ici:
http://60gp.ovh.net/~kainbuye/autres_pages/course.php

Merci

Posté : 03 déc. 2005, 13:49
par mario
<?php
setlocale (LC_ALL,"fr");
echo "Aujourd'hui nous sommes le: ".strftime("%A %d %B %Y",time());
// Retourne -> Aujourd'hui nous sommes le: vendredi 11 novembre 2005
?>

Posté : 03 déc. 2005, 14:22
par Sebe
Merci mais ce n'est pas cela que j'attendais!

J'ai mis le code et il me donne la date du jour ... je voudrais aller chercher la date dans ma BD (une date où la course à lieu)! De plus, c'est toujours en anglais et sans l'heure.

Merci

Posté : 03 déc. 2005, 14:27
par Truc
Salut, as tu regardé la FAC, il y a ce qu'il te faut, 2eme exemple DATE_FORMAT et tu peut directement obtenir ce que tu veut depuis la requete (gain de temps)

Posté : 03 déc. 2005, 14:46
par mario
et tu peut directement obtenir ce que tu veut depuis la requete (gain de temps)
Formater directement une date écrite de toute lettre en français directement dans la requete ? je n'en suis pas si sur

Sebe tu pourrais au moins chercher un peu, je t'ai donné un exemple... un copier coller ne suffit pas.

ça marche avec n'importe quel date, exemple le 3/12/2005
<?php
setlocale (LC_ALL,"fr");
echo strftime("%A %d %B %Y %H:%M:%S",strtotime("2005-12-03"));
?>

si ta structure du champ est bien au format DATETIME, essaye ça:
<?php
setlocale (LC_ALL,"fr");
echo strftime("%A %d %B %Y %H:%M:%S",strtotime($row['date_heure']));
?>
EDIT:> J'ai corrigé l'exemple : :!: strtotime -- Transforme un texte anglais en timestamp
La date dans le champ 'date_heure' doit être impérativement une date formaté en anglais :arrow: YYYY-MM-DD

Posté : 04 déc. 2005, 12:54
par Sebe
Salut,

Merci pour les solutions mais je n'y trouve pas mon bonheur ... la date apparaît toujours écrite en anglais (le 'th' n'est plus, c'est déjà mieux)
Friday 11 November 2005 10:00
J'ai aussi cherché :wink: pour enlever les secondes et j'y suis arrivé (petit rappel, 2 mois PHP seulement!)
<?php setlocale (LC_ALL,"fr"); echo strftime("%A %d %B %Y %H:%M",strtotime($row_course['date_heure'])); ?>
mais je ne trouve pas pour mettre la date totalement en français. Est-ce possible ou dois-je mettre JJ/MM/AA ?

Merci

Posté : 04 déc. 2005, 13:00
par mario
ton serveur est sur linux ou windows ?
peux tu faire un echo row['date_heure'];
et m'indiquer ce qui est affiché ?

Posté : 04 déc. 2005, 13:43
par Sebe
ton serveur est sur linux ou windows ?
peux tu faire un echo row['date_heure'];
et m'indiquer ce qui est affiché ?
Windows XP et je suis chez OVH (60gp)

Pour faire un echo row_course['date_heure'] ... je fais cela où? Sorry mais je suis en apprentissage!

Posté : 04 déc. 2005, 13:48
par Sebe
Sorry,

C'est dans le PHPMyAdmin ! ? !

Code : Tout sélectionner

echo row_course['date_heure']
requête SQL :

echo row_course[ 'date_heure']

MySQL a répondu:


#1064 - You have an error in your SQL syntax near 'echo row_course[ 'date_heure']' at line 1

Posté : 04 déc. 2005, 13:54
par Cyrano
:shock: Pour information, dans phpMyAdmin, on envoie des requetes SQL, pas des variables PHP. echo() s'utilise en PHP, donc dans ta page, fais un echo($ta_requête); pour l'afficher à l'écran et ensuite, copie et colle la requête générée pour l'utiliser dans phpMyAdmin. Mais n'envoie pas de PHP dans phpMyAdmin, ce serait envoyé comme du SQL et MySQL ne sait pas interpréter autre chose que du SQL.

Posté : 04 déc. 2005, 14:23
par Sebe
:roll:

J'ai donc tapé ceci
<?php echo $row_course['date_heure'] ?>
Qui donne dans ma page ceci
2005-11-11 10:00:00
Ce qui est normalement bon mais pas dans le format que je veux
Je voudrais en gros Vendredi 11 novembre 2005 à 10h00

Merci

Posté : 04 déc. 2005, 14:33
par mario
essaye
<?php setlocale (LC_ALL,"fr_FR"); echo strftime("%A %d %B %Y %H:%M",strtotime($row_course['date_heure'])); ?>
j'ai ajouté fr_FR

Posté : 04 déc. 2005, 15:06
par Sebe
Yesssssss ... cela fonctionne à merveille!


Merci beacoup et @+

Posté : 04 déc. 2005, 16:53
par mario
Yesssssss ... cela fonctionne à merveille!


Merci beacoup et @+

:D impecc

petite explication:


fr_FR fonctionne sur Linux mais pas sur windows.
fr fronctionne sur windows mais pas sur Linux

inutile de déclarer setlocale (LC_ALL,"fr_FR"); plusieurs fois.
tu peux le mettre dans un fichier de config ou en début de script.

@+