2013-10-07 4 views
0

Я пытаюсь показать на экране дату в формате, таком как понедельник, 4 октября 2013 года, используя данные из таблицы MySQL. Дата сохраняется в формате DATE. Я использую следующее, и я получаю ошибку:Нужно форматировать дату

echo "<td class='date' colspan='8'>" .date($row['draw_date'],'l F j, Y'). "</td>"; 

Пожалуйста, скажите мне, что я делаю неправильно.

ответ

0

у вас есть параметры в обратном направлении для date() и вам необходимо преобразовать дату в метку времени, прежде чем использовать его в функции date() .:

date($row['draw_date'],'l F j, Y') 

должен быть

date('l F j, Y', strtotime($row['draw_date'])) 
+0

Будет ли это работать, если '$ row ['draw_date']' не является меткой времени Unix? –

+0

Фактически нет. Увидев ваш комментарий, я перечитал их вопрос, и теперь я вижу, что они не хранят данные как временную метку, что означает, что она должна быть преобразована как таковая. Я соответствующим образом обновлю ответ. –

1

Функция date() ожидает, что временная метка Unix станет ее вторым параметром, и теперь вы предоставляете формат в качестве второго параметра.

string date (string $format [, int $timestamp = time() ]) 

Вы должны сначала преобразовать строку даты в метку времени Unix с помощью strtotime() и вы можете использовать его в date(), чтобы получить дату в требуемом формате:

date('l F j, Y', strtotime($row['draw_date'])) 

Обратитесь к документации для получения дополнительной информации : date()

0

MySQL собирается возвращаться дату в виде строки, например 2013-10-07. Вы можете NOT использовать эту строку как временную метку в функции PHP date(). Эта функция ожидает отметку времени UNIX, которая является простым целым числом. Либо отформатируйте дату в MySQL, используя date_format(), либо просто выведите строку или используйте unix_timestamp() MySQL, чтобы преобразовать собственную DATE в временную метку unix, которую вы МОЖЕТЕ использовать в системе дат PHP.

0

Я использовал следующее из разных предложений и, похоже, работает. Спасибо за вашу помощь.

$row['display_date'] = strtotime($row['date']); 
    echo "<td class='date' colspan='8'>".date('D M d, Y', $row['display_date']). "</td>"; 
Смежные вопросы