2009-10-24 14 views
1

question simple mais je besoin :)comment le format de date provenant MYSQL

$query = "SELECT * 
FROM `set` 
WHERE ID = '$id'"; 

$result = mysql_query($query); 
$info = mysql_fetch_assoc($result); 

$frmdate = $info['date']; 

Jusqu'à présent, j'essayé

$timestamp = strtotime($info['date']); 
$joined_date = date("j M. Y", $timestamp); 

mais pas de chance!

champ "date" dans une base MySQL est DATE type de données

Je veux le faire comme "23 octobre 2009"

comment puis-je le faire?

Merci

Répondre

2

Vous pouvez utiliser strtotime pour convertir la représentation de chaîne de la date dans un horodatage, vous pouvez utiliser date pour convertir l'horodatage dans le format que vous aimez:

$timestamp = strtotime($frmdate); 
$formatted_date = date("j M. Y", $timestamp); 

Vous pouvez également déplacer la traduction du format aaaa-mm-jj à l'horodatage dans la requête elle-même, en utilisant:

select unix_timestamp(field_name) as field_name_timestamp 
+0

thx, $ frmdate était "2009-10-01" mais il en résultait "31 décembre 1969" avec votre code –

+0

Cela signifie que, selon la documentation de 'strtotime',' $ frmdate' n'a pas été analysé avec succès. –

+0

Je ne peux pas le faire, $ info ['date'] est un champ DATE, et j'ai essayé cela $ timestamp = strtotime ($ info ['date']); $ joined_date = date ("j M. Y", $ timestamp); mais encore une fois faux –

1

Vous pouvez forma t la date dans le serveur de base de données MySQL.

SELECT *, DATE_FORMAT(date, '%e %b. %Y') AS formatted_date 
FROM `set` 
WHERE ID = '$id' 

Ensuite, vous juste besoin de modifier votre code php client juste utiliser la chaîne retournée par l'appel de la base de données en $info['formatted_date']. Utilisez 'd' à la place de 'e' dans la chaîne de format si vous ne voulez pas un zéro initial le jour du mois.