Мне нужно изменить формат даты с помощью php - PullRequest
1 голос
/ 31 января 2009

Привет! Я посмотрел на вопрос, уже опубликованный по этому поводу, и попытался адаптировать мой код, чтобы сделать что-то подобное. В основном у меня есть поле в моей базе данных mysql, в котором есть дата в этом формате гггг-дд-мм, мне нужно, чтобы формат был дд-мм-гггг. В настоящее время мой код застревает в строке echo "<td><strong> ("d/m/y",". $row['date'] .")</strong></td>"; и читает эту ошибку Parse: синтаксическая ошибка, неожиданный 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 ]

7 голосов
/ 31 января 2009

Перво-наперво

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

Эта строка выглядит неправильно; Я подозреваю, что это должно читать что-то вроде

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

Обратите внимание на отсутствующие операторы вызова функций и конкатенации. Между прочим, хотя это синтаксически правильно (насколько я вижу), оно может не выполнять то, что вы ищете, в зависимости от того, что на самом деле содержит $row['date'] - это должна быть метка времени Unix для date(), чтобы получить его должным образом.

Чтобы получить дату как метку времени Unix, вы можете использовать функцию MySQL UNIX_TIMESTAMP() при выборе даты, например,

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

Затем вы можете получить доступ к $row['date_ts'] в обычном режиме и передать его в функцию date() для форматирования. В качестве альтернативы, вы можете использовать что-то вроде strtotime(), чтобы проанализировать текущее значение, возвращаемое для получения временной отметки от этого.

Еще одна альтернатива состоит в том, чтобы MySQL форматировал дату от вашего имени, используя ее функцию DATE_FORMAT(); снова вы можете получить доступ к этому значению, возвращенному из запроса, и распечатать его.

1 голос
/ 20 апреля 2010

Используйте это как:

echo "<td><strong>".date("d/m/y", strtotime($row['date']))."</strong></td>";
0 голосов
/ 26 мая 2009
$res = mysql_query('SELECT dte FROM vtable');
$row = mysql_fetch_array($res);
print date('d M Y', strtotime($row['dte']));
0 голосов
/ 31 января 2009

Вы должны вызвать функцию date :

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