2009-05-20 8 views
1

Salut J'ai été en mesure d'extraire un VARCHAR à une date en utilisant string_to_date, mais peu importe ce que j'essaie la date fait toujours écho comme par ex. 2009-05-25
Voici mon code qui fonctionne:Format STR_TO_DATE à une date

$query = "SELECT u.url_id, url, title, description, STR_TO_DATE(pub_date, '%d-%b-%Y') 
    AS pub_date FROM urls AS u, url_associations AS ua WHERE u.url_id = ua.url_id AND 
    ua.url_category_id=$type AND ua.approved = 'Y' ORDER BY pub_date DESC"; 
$result = mysql_query ($query); 
echo " <tr> 
<td align=\"left\">{$row['pub_date']}</td> 
</tr>\n"; 

J'ai essayé DATE_FORMAT et des méthodes similaires mais je soit recevoir 2009-05-25 ou blanc. Quelqu'un peut-il m'aider à résoudre ce problème? Je suis à la recherche et test mais j'ai décidé de demander de l'aide ici car l'aide est la bienvenue et ceux qui ont aidé auparavant étaient très gentils.

Merci

Sean

+0

Je comprends (je pense) que vous voulez sortir une date dans un format autre que celui par défaut de MySQL? Si c'est le cas, DATE_FORMAT() est la fonction correcte à utiliser. Quel format voulez-vous? Montrez comment vous avez utilisé DATE_FORMAT() qui n'a pas donné le résultat souhaité. –

Répondre

2

Le type de retour de STR_TO_DATE est DATE qui est retourné à PHP.

C'est PHP qui formate les dates dans votre echo, et non MySQL.

Pour faire la mise en forme sur MySQL côté, utilisez:

DATE_FORMAT(STR_TO_DATE(pub_date, '%d-%b-%Y'), '%Y.%m.%d') 

ou un autre format.

Le format interne contrôle comment votre chaîne doit être stockée dans la base de données, le format externe contrôle la sortie.

Pour faire la mise en forme sur PHP côté (ce qui est mieux que vous pouvez honorer des formats spécifiques de culture pour différents utilisateurs), utilisez:

echo date('Y m d', strtotime($row['pub_date'])) 
+0

Une ressource strtotime() infiniment utile: http://php-date.com/#strtotime –

+0

Merci beaucoup Quassnoi, la date montre maintenant correctement. Je vais ajouter le code afin que les autres puissent voir comment votre conseil s'inscrit. Merci encore, je vous suis vraiment reconnaissant. Sean – Ddywalgi

+0

J'ai essayé "Répondre à votre question" à mes questions, mais pas de joie. Si quelqu'un voudrait avoir une réponse à ceci - mon sélecteur de date est le calendrier de jason js, s'il vous plaît écrivez à [email protected] Merci Annath et Zombat, sans vos conseils initiaux, je n'aurais pas de chemin à suivre. La personne qui a ajouté la pièce manquante au puzzle et qui mérite le crédit pour la solution mais pas pour le voyage, c'est Quassnoi. Votre contribution a été à la fois inestimable et chaleureuse. les résultats peuvent être vus ici - http://mediamice.net/STR_TO_DATE/html/index.php les liens sont AJOUTER UNE ALIMENTATION NOUVELLES ET VOIR TOUS LES ALIMENTS NOUVELLES/CLIENTS. Merci – Ddywalgi

0

De this reference site suivants sont commande mysql et la sortie

mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y'); 
     -> 'Sunday October 2009' 
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s'); 
     -> '22:23:00' 
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00', 
    ->     '%D %y %a %d %m %b %j'); 
     -> '4th 00 Thu 04 10 Oct 277' 
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', 
    ->     '%H %k %I %r %T %S %w'); 
     -> '22 22 10 10:23:00 PM 22:23:00 00 6' 
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V'); 
     -> '1998 52' 
mysql> SELECT DATE_FORMAT('2006-06-00', '%d'); 
     -> '00'