1

こんにちは私はこれについてすでに投稿された質問を見て、同様のことをするために私のコードを適応させようとしました。基本的に、mysqlデータベースには、この形式yyyy-dd-mmの日付を持つフィールドがあります。dd-mm-yyyyの形式にする必要があります。現在、私のコードは行に詰まっていて、echo "<td><strong> ("d/m/y",". $row['date'] .")</strong></td>";この解析エラーを読み取ります:構文エラー、予期しないT_STRING、'、'、または';'を予期しています。これを修正する方法がわからないので、私は素晴らしいと思います。

$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>";
4

4 に答える 4

7

まず最初に

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

この行は間違っているように見えます。私はそれが次のようなものを読むべきだと思う

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

欠落している関数呼び出しと連結演算子に注意してください。$row['date']ちなみに、これは構文的には正しいですが(私が見る限り)、実際に含まれているものによっては、探しているものが実行されない場合がありdate()ます。適切に処理するには、Unixタイムスタンプである必要があります。

UNIX_TIMESTAMP()日付をUnixタイムスタンプとして取得するには、日付を選択するときにMySQL関数を使用できます。

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

$row['date_ts']その後、通常どおりにアクセスし、それをdate()関数に渡してフォーマットすることができます。または、のようなものを使用してstrtotime()、返された現在の値を解析し、そこからタイムスタンプを取得することもできます。

DATE_FORMAT()さらに別の方法は、MySQLにその関数を使用して、ユーザーに代わって日付をフォーマットさせることです。ここでも、クエリから返されたこの値にアクセスして印刷できます。

于 2009-01-31T15:39:34.523 に答える
1

次のように使用します。

echo "<td><strong>".date("d/m/y", strtotime($row['date']))."</strong></td>";
于 2010-04-20T05:33:58.683 に答える
0

date関数を呼び出す必要があります:

echo "<td><strong>".date("d/m/y", $row['date'])."</strong></td>";
于 2009-01-31T15:41:19.370 に答える
0
$res = mysql_query('SELECT dte FROM vtable');
$row = mysql_fetch_array($res);
print date('d M Y', strtotime($row['dte']));
于 2009-05-26T04:55:39.673 に答える