conversion basique de date

Petit nouveau ! | 8 Messages

12 févr. 2015, 11:33

Bonjour,

Je suppose que c'est ultra simple mais je m'y perd dans la multitude de fonctions de date php...
Comment puis je passer de cette valeur retournée "01/01/2015" à un affichage de Lundi 1er Janvier 2015, svp...?
Meri d'avance !

ViPHP
xTG
ViPHP | 7331 Messages

12 févr. 2015, 13:56

Tu peux regarder du côté de la class DateTime qui offre tous les outils pour faire ce que tu souhaites.
Notamment : format()

Petit nouveau ! | 8 Messages

12 févr. 2015, 14:09

ok merci beaucoup !

Petit nouveau ! | 8 Messages

12 févr. 2015, 14:27

...le problème c'est que pour par exemple 05/02/2015, j'obtiens 02 MAI et pas 05 FEVRIER

setlocale (LC_TIME, 'fr_FR');
$dateFormat = $first_row_date;
$date = strftime("%A %d %B %Y",strtotime($dateFormat));

echo $date ;

ViPHP
xTG
ViPHP | 7331 Messages

12 févr. 2015, 16:14

En effet, ce parce que PHP n'a pas été développé par des français. ;)
La fonction strtotime() essaye de lire une date au format anglais fournie par le paramètre time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC), relativement au timestamp now, ou à la date courante si ce dernier est omis.
Une piste de la doc ;)
Les dates aux formats m/d/y ou d-m-y sont analysées en regardant le séparateur entre les différentes parties : si le séparateur est un slash (/), alors le format américain m/d/y est supposé ; si le séparateur est un tiret (-) ou un point (.), alors le format Européen d-m-y sera supposé.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 févr. 2015, 16:51

Hello !

Le forum FAQ contient des explications détaillées sur ce sujet :
:arrow: Quelques petites manipulations avec les dates (PHP/MySQL)

Pensez à faire une recherche ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 8 Messages

12 févr. 2015, 16:54

merci à tous !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

12 févr. 2015, 17:35

Une solution élégante est d'utiliser la fonction date_create_from_format() qui permet de préciser justement le format dans lequel est ta date en entrée pour éviter les confusions entre format anglo-saxon et format français.
<?php
$date_originale="05/02/2015";


$timestamp_strtotime=strtotime($date_originale);
echo date("d M Y", $timestamp_strtotime);
// Va renvoyer le 2 mai car par défaut PHP pense que la date est au format américain qui place le mois avant le jour


$timestamp_datecreatefromformat = date_create_from_format('d/m/Y', $date_originale);
echo date_format($timestamp_datecreatefromformat, "d M Y");
// Va renvoyer le 5 février
##edit : j'ai mis à jour la FAQ avec cet exemple ;)
Quand tout le reste a échoué, lisez le mode d'emploi...