2009-12-04 3 views
3

Je récupère la date de MySQL au format aaaa/mm/jj 00:00:00. Je veux convertir cette date en format jj/MMM/aaaa en PHP.Convertir en jj/mmm/aaaa

+3

mois à trois chiffres? vivez-vous sur jupiter? –

+3

Je suppose qu'il veut dire JAN, FEB, DEC etc. –

+2

Je présume MMM = Jan, Fév .... .... – kevchadders

Répondre

11

Utilisez PHP de date et strtotime:

$formatted = date('d/M/Y', strtotime($date_from_mysql));

Ou utilisez MySQL est construit en DATE_FORMAT fonction:

SELECT DATE_FORMAT(datetime, '%d/%b/%Y') datetime FROM table

Ou, vous pouvez mélanger un peu des deux saveurs:

SELECT UNIX_TIMESTAMP(datetime) timestamp FROM table; 

$formatted = date('d/M/Y', $timestamp); 

La dernière méthode est pratique si vous avez besoin de plusieurs formats différents sur la même page; disons, vous voudriez imprimer la date et l'heure séparément, alors vous pouvez juste utiliser la date ('d/M/Y', $ timestamp) et la date ('H: i', $ timestamp) sans aucune autre conversion.

+0

m'aider. thx –

5

Bien que vous ayez spécifiquement demandé une solution php, vous pourriez également être intéressé par la fonction date_format() de MySQL.

SELECT date_format(dt, '%d/%m/%Y') ... 
+1

+1 Pour faire dans la requête ce qui peut être fait. – jensgram

+0

+1 MySQL stocke en interne la date sous forme de nombre; De cette façon, vous analysez et formatez la date une seule fois. – Piskvor

+0

Mais j'utilise Select *

. – RKh

0

Vous devriez jeter un oeil à la fonction date() en PHP (docs).

print date('d/M/Y', $row['tstamp']); 

Cela applique si votre champ de date est un DATETIME ou TIMESTAMP. Rappelez-vous d'envelopper le champ dans UNIX_TIMESTAMP() (docs), par ex. SELECT ..., UNIX_TIMESTAMP(dateField) AS tstamp FROM ....

+1

Le paramètre secondes de date() doit être un horodatage unix, pas la représentation textuelle d'une DATETIME ou TIMESTAMP MySQL. Par conséquent, vous devez utiliser la fonction UNIX_TIMESTAMP (date) dans votre requête, http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html#function_unix-timestamp – VolkerK

+0

a raison. Edité ci-dessus. Merci. – jensgram

0

Vous pouvez réellement obtenir mySQL pour convertir la date à un horodatage unix

SELECT UNIX_TIMESTAMP(field) as date_field 
FROM table 

Ensuite, vous pouvez passer cette fonction directement dans la date phps() pour obtenir le format que vous voulez

date('d/M/Y', $row['date_field']) 
0
$d=date_create('2009-12-04 09:15:00'); 
echo $d->format('dd/M/yyyy');