Дата и время в MySQL поддерживается в формате ISO 8601. Время отображается практически интуитивно, но ISO 8601 требует указания года первым. Например, дата 18 марта 2011года может вводится как 2011-03-18 или 11-03-18. Даты, получаемые из MySQL, по умолчанию также представлены в этом формате.
В зависимости от потенциальных посетителей, вы можете счесть эту функцию не особо дружественной к ним. Следовательно взаимодействие PHP и MySQL обычно требуют некоторого преобразования дат. Такое преобразование можно выполнить на любой стороне.
При пересылке дат из PHP в MySQL их можно легко преобразовать в требуемый формат с помощью функции date(), как было показано ранее. Нужно лишь использовать версию числа и месяца с ведущими нулями, во избежание путаницы в MySQL.
Вы можете использовать представление года в виде двух цифр, однако представление в форме четырех цифр — обычно более хорошая идея. Если же преобразование необходимо выполнить в MySQL, то для этого существует две полезных функции: DATE_FORMAT() и UNIX_TIMASTAMP().
Функция DATE_FORMAT() работает аналогично подобной функции в PHP, но использует другие коды формата. Чаще всего она применяется для вывода даты в формате MM-ДД-ГГГГ (месяц/день/год) вместо естественного для MySQL ISO-формата ГГГГ-ММ-ДД (год/месяц.день). Для этого потребуется сформировать следующий запрос:
SELECT DATE_FORMAT (date_column, '%m %d %Y')
FROM tablename;
Код формата %m задает двузначный формат месяца, %d —двузначный формат дня, %Y — четырехзначный формат года. Наиболее полезные коды формата преобразования даты в MySQL перечислены в таблице.
Код | Описание |
---|---|
%M | Месяц, полное английское название. |
%W | День недели, полное английское название. |
%D | День месяца, числовой формат с текстовым суффиксом (например, lst). |
%Y | Год, четырехзначное число. |
%y | Год, двузначное число. |
%a | День недели, трехсимвольный формат. |
%d | День месяца, число с ведущими нулями. |
%e | День месяца, число безведущихнулей. |
%m | Месяц, число с ведущими нулями. |
%c | Месяц, число безведущих нулей. |
%b | Месяц, 3-символьное текстовое представление. |
%j | День года, числовое значение. |
%H | Часы в 24-часовом формате с ведущими нулями. |
%k | Часы в 24-часовом формате без ведущих нулей. |
%h или %I | Часы в 12-часовом формате с ведущими нулями. |
%l | Часы в 12-часовом формате без ведущих нулей. |
%i | Минуты с ведущими нулями. |
%r | Время в 12-часовом формате (hh:mm:ss [AM|PM]). |
%T | Время в 24-часовом формате (hh:mm:ss). |
%S или %s | Секунды, число с ведущими нулями. |
%p | AM или PM. |
%w | День недели, число от 0 (воскресенье) до 6(суббота). |
Функция UNIX_TIMESTAMP работает аналогично, но преобразует значение столбца в метку времени Unix. Например:
SELECT UNIX_TIMESTAMP (date_column)
FROM tablename;
возвращает дату в формате метки Unix. Затем в PHP с ней можно производить любые операции.
Метки времени Unix используются для вычислений над датами. Не забывайте, что с помощью меток времени можно представлять даты между 1902 и 2038 годами, тогда как типа даты MySQL допускает более широкий диапазон.
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться