Page 1 sur 1

conversion basique de date

Posté : 12 févr. 2015, 11:33
par pipoulito
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 !

Re: conversion basique de date

Posté : 12 févr. 2015, 13:56
par xTG
Tu peux regarder du côté de la class DateTime qui offre tous les outils pour faire ce que tu souhaites.
Notamment : format()

Re: conversion basique de date

Posté : 12 févr. 2015, 14:09
par pipoulito
ok merci beaucoup !

Re: conversion basique de date

Posté : 12 févr. 2015, 14:27
par pipoulito
...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 ;

Re: conversion basique de date

Posté : 12 févr. 2015, 16:14
par xTG
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é.

Re: conversion basique de date

Posté : 12 févr. 2015, 16:51
par Ryle
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 ;)

Re: conversion basique de date

Posté : 12 févr. 2015, 16:54
par pipoulito
merci à tous !!

Re: conversion basique de date

Posté : 12 févr. 2015, 17:35
par @rthur
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 ;)