Каков самый простой и быстрый способ заполнить приведенный ниже код PHP таким образом, чтобы результат был в удобном для пользователя формате (например, «27 октября 2006 г.»)?
$result = mysql_query("SELECT my_timestamp FROM some_table WHERE id=42", $DB_CONN); $row = mysql_fetch_array($result); $formatted_date = ???($row['my_timestamp']); echo $formatted_date;
Вы можете использовать MySQL для этого,
$result = mysql_query("SELECT DATE_FORMAT(my_timestamp, '%M %d, %Y) AS my_timestamp FROM some_table WHERE id=42", $DB_CONN); $row = mysql_fetch_array($result); $formatted_date = $row['my_timestamp']; echo $formatted_date;
Или используйте PHP,
$result = mysql_query("SELECT my_timestamp FROM some_table WHERE id=42", $DB_CONN); $row = mysql_fetch_array($result); $formatted_date = strftime('%B %d, %y', $row['my_timestamp']); echo $formatted_date;
Я обычно делаю форматирование даты в SQL, как ответ Арона . Хотя для дат PHP я предпочитаю использовать объект DateTime (PHP5 +) по дате :
$timestamp = new DateTime($row['my_timestamp']); echo $timestamp->format('F j, Y') . '<br />'; echo $timestamp->format('F j, Y g:ia');
Вам нужна функция date () .
Если у вас есть столбец DATE или DATETIME, вы можете использовать SELECT UNIX_TIMESTAMP (mycolumn) AS mycolumn, чтобы преобразовать его в временную метку unix для функции даты.
Вы должны определенно использовать класс DateTime (или любой дом, который стал эквивалентным классом), над функцией Date, а не использовать временные метки:
В конце концов, не полагайтесь на временные метки, если только вы не находитесь в среде только на английском языке и имеете дело только с периодами между 1970 и 2032 годами …!
Если у вас есть таблицы, индексированные в поле этой даты, и вы используете функцию формата данных mysql в своем вызове .. (то есть SELECT DATE_FORMAT (my_timestamp, '% M% d,% Y) AS my_time), это уничтожит вашу индексацию. Что-то нужно иметь в виду. Мы видели резкое увеличение скорости при удалении всех функций из наших операторов sql и позволяя php обрабатывать все это. Функционирование, такое как даты форматирования и простая математика
Я использую:
date ("F j, Y", strtotime ($ row ['my_timestamp']))
или вы можете изменить SELECT на: DATE_FORMAT (поле, '% d% M,% Y') в качестве даты и времени
У вас есть выбор. Вы можете использовать функцию date () в PHP и обрабатывать выходные данные MySQL, или вы можете использовать функцию date_format () в MySQL и вернуть ее форматированную строку.
По моему опыту, это не имеет значения, что вы используете, но БУДЬТЕ СОГЛАСНЫ. Они имеют разные параметры форматирования, поэтому, если вы используете оба в данном приложении, вы потратите много времени, пытаясь запомнить, если «W» дает вам имя дня недели или недели года.
Создайте базу данных для форматирования. Это гораздо менее восприимчиво к ошибке, потому что вы не читаете строку и не конвертируете ее. Вместо этого база данных переходит из собственного формата в строку.