2009-01-31 8 views
1

Salut J'ai regardé une question déjà posté à ce sujet et j'ai essayé d'adapter mon code pour faire une chose simlar. Fondamentalement, j'ai un champ dans ma base de données mysql qui a la date dans ce format aaaa-jj-mm dont j'ai besoin pour le format dj-mm-yyyy. Actuellement, mon code est bloqué sur la ligne echo "<td><strong> ("d/m/y",". $row['date'] .")</strong></td>"; et lit cette erreur d'analyse: erreur de syntaxe, T_STRING inattendu, attendez ',' ou ';'. Je ne sais pas comment résoudre toutes ces idées que je serais reconnaissant.J'ai besoin de changer le format de date en utilisant php

$result = mysql_query("SELECT * FROM dbGigs WHERE CURDATE() < date ORDER BY date"); 

echo "<table class=\"gigs\"> 
<tr> 
<th>Venue</th> 
<th>Town</th> 
<th>Date</th> 
<th>Time</th> 
<th>Status</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td><strong>" . $row['venue'] . "</strong></td>"; 
    echo "<td><strong>" . $row['town'] . "</strong></td>"; 
    echo "<td><strong> ("d/m/y",". $row['date'] .")</strong></td>"; 
    echo "<td><strong>" . $row['time'] . "</strong></td>"; 
    echo "<td><strong>" . $row['status'] . "</strong></td>"; 
    echo "</tr>"; 

Répondre

7

First things first

echo "<td><strong> ("d/m/y",". $row['date'] .")</strong></td>"; 

Cette ligne semble erroné; Je suppose qu'il devrait lire quelque chose comme

echo "<td><strong>" . date("d/m/y", $row['date']) . "</strong></td>"; 

Notez les opérateurs d'appel de fonction et de concaténation manquants. Incidemment, bien que ce soit syntaxiquement correct (pour autant que je puisse le voir), il peut ne pas faire ce que vous cherchez, en fonction de ce que $row['date'] contient réellement - il doit être un timestamp Unix pour date() pour le goupir correctement.

Pour obtenir la date sous la forme d'un horodatage Unix, vous pouvez utiliser la fonction MySQL UNIX_TIMESTAMP() lors de la sélection de la date, par ex.

SELECT *, UNIX_TIMESTAMP(date) AS date_ts FROM ... 

Vous pouvez alors accéder $row['date_ts'] comme normal, et le transmettre dans la fonction date() pour le formatage. Alternativement, vous pouvez utiliser quelque chose comme strtotime() pour analyser la valeur actuelle retournée afin d'obtenir un horodatage de cela.

Une autre alternative est d'avoir le formatage MySQL la date en votre nom, en utilisant sa fonction DATE_FORMAT(); encore une fois, vous pouvez accéder à cette valeur renvoyée par la requête et l'imprimer.

+0

Oui vous avez raison, je ne fais pas ce que je veux haha. La date stockée dans ce champ date est un champ de date mysql et demande la date au format aaaa-jj-mm que je ne pense pas être très facile à comprendre pour l'utilisateur lorsqu'il est visualisé sur une page Web. Savez-vous comment faire cela? Merci. –

+0

Mise à jour de la réponse avec quelques idées. – Rob

0

Vous devez appeler le date function:

echo "<td><strong>".date("d/m/y", $row['date'])."</strong></td>"; 
0
$res = mysql_query('SELECT dte FROM vtable'); 
$row = mysql_fetch_array($res); 
print date('d M Y', strtotime($row['dte'])); 
1

utiliser comme:

echo "<td><strong>".date("d/m/y", strtotime($row['date']))."</strong></td>";