2010-08-04 4 views
0

Quelle est la bonne façon de convertir de l'horodatage mysql (AAAA-MM-JJ HH: MM: SS) à mon propre format choisi, quelque chose comme "5 août 2010"? Comment puis-je faire le MySQL timestamp php date() compatible?mysql timestamp convertion

Répondre

4

Il y a deux façons ...

D'abord, vous pouvez le faire en php avec strtotime() ...

$time = strtotime('2010-05-05 05:05:05'); 
echo date('F j, Y', $time); 

Ou, vous pouvez le convertir en temps unix en MySQL avec UNIX_TIMESTAMP():

SELECT UNIX_TIMESTAMP(`your timestamp column`) FROM blahblah.... 

Vous auriez besoin alors le formater avec date() en php après l'aller chercher.

Ou, vous pouvez faire droit la chose entière dans MySQL avec DATE_FORMAT():

SELECT DATE_FORMAT(`your timestamp column`, '%M %e, %Y') FROM ... 
+0

Mauvaise idée de le faire avec MySQL. Vous êtes à la merci du fuseau horaire choisi par votre base de données, qui peut être ou non celui utilisé par PHP (sans parler du fait que les données du fuseau horaire ne seront probablement pas mises à jour). – Artefacto

+1

@Artefacto Pas une mauvaise idée du tout. En fait, c'est une très bonne idée. En fait, je ne fais confiance à MySQL qu'avec des dates (à cause de la réplication et de l'équilibrage de charge). Cela peut mener à des maux de tête si vous mélangez PHP et MySQL, mais tant que vous en choisissez un et que vous le respectez ou que vous testez correctement, tout ira bien ... – ircmaxell

+0

Quoi? Vous faites confiance à MySQL avec des dates * en raison de la réplication et de l'équilibrage de charge? Qu'est-ce que la réplication et l'équilibrage de charge doivent faire quelque chose comme l'analyse/mise en forme d'une date? Mélanger PHP et MySQL est une recette de désastre et de confiance MySQL seul n'est pas vraiment meilleur (gère-t-il les fuseaux horaires, l'heure avancée et les changements de règles correctement et peut-il garder ses règles à jour [tout au long de l'année?] http://derickrethans.nl/storing-date-time-in-database.html)). – Artefacto

1

Vous pouvez MySQL retourner comme un horodatage Epoch qui la fonction de la date de php peut gérer ou utiliser la fonction suivante:

$epoch = strtotime('YYYY-MM-DD HH:MM:SS');

php Manual: strtotime

1

Troisième option: utiliser la fonction DATE_FORMAT() de MySQL (bien que je préfère de façon ircmaxell)