Для справки, напишу пару функций для получения даты и времени. Когда пишешь php код, работа с датой, является очень частым процессом.
Получим время в секундах
|
1 2 3 |
$t=time(); |
Получим дату по формату: День, Месяц, Год, Час, Минута, Секунда
|
1 2 3 |
$t=date('d.m.Y G:i:s',time()); |
Получим: 19.10.2025 10:07:36
Таблица расшифровки символов, которые можно использовать при получении необходимого отображения даты/время. Разделитель можно использовать любой.
| Символ в строке | Описание | Пример возвращаемого значения |
| a | Ante meridiem или Post meridiem в нижнем регистре | am или pm |
| A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
| B | Время в стадарте Swatch Internet | От 000 до 999 |
| c | Дата в формате ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00 |
| d | День месяца, 2 цифры с ведущими нулями | от 01 до 31 |
| D | Сокращенное наименование дня недели, 3 символа | от Mon до Sun |
| F | Полное наименование месяца, например January или March | от January до December |
| g | Часы в 12-часовом формате без ведущих нулей | От 1 до 12 |
| G | Часы в 24-часовом формате без ведущих нулей | От 0 до 23 |
| h | Часы в 12-часовом формате с ведущими нулями | От 01 до 12 |
| H | Часы в 24-часовом формате с ведущими нулями | От 00 до 23 |
| i | Минуты с ведущими нулями | 00 to 59 |
| I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, иначе 0otherwise. |
| j | День месяца без ведущих нулей | От 1 до 31 |
| l (строчная ‘L’) | Полное наименование дня недели | От Sunday до Saturday |
| L | Признак високосного года | 1, если год високосный, иначе 0. |
| m | Порядковый номер месяца с ведущими нулями | От 01 до 12 |
| M | Сокращенное наименование месяца, 3 символа | От Jan до Dec |
| n | Порядковый номер месяца без ведущих нулей | От 1 до 12 |
| O | Разница с временем по Гринвичу в часах | Например: +0200 |
| r | Дата в формате RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200 |
| s | Секунды с ведущими нулями | От 00 до 59 |
| S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j |
| t | Количество дней в месяце | От 28 до 31 |
| T | Временная зона на сервере | Примеры: EST, MDT … |
| U | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) | |
| w | Порядковый номер дня недели | От 0 (воскресенье) до 6 (суббота) |
| W | Порядковый номер недели года по ISO-8601, первый день недели — понедельник (добавлено в PHP 4.1.0) | Например: 42 (42-я неделя года) |
| Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003 |
| y | Номер года, 2 цифры | Примеры: 99, 03 |
| z | Порядковый номер дня в году (нумерация с 0) | От 0 до 365 |
| Z | Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC — положительное. | От -43200 до 43200 |
Есть еще другой вариант формирования даты.
|
1 2 3 |
$t=getdate();//Получаем массив времени |
Эта функция получает ассоциативный массив, где каждый из индексов отвечает за свой параметр
Чтобы получить час, нужно обратиться к массиву, через ассоциативный индекс:
|
1 2 3 |
$h=$t[‘hours’] |
| Индекс | Описание | Пример значения |
| seconds | Секунды | От 0 до 59 |
| minutes | Минуты | От 0 до 59 |
| hours | Часы | От 0 до 23 |
| mday | Порядковый номер дня месяца | От 1 до 31 |
| wday | Порядковый номер дня | От 0 (воскресенье) до 6 (суббота) |
| mon | Порядковый номер месяца | От 1 до 12 |
| year | Порядковый номер года, 4 цифры | Примеры: 1999, 2003 |
| yday | Порядковый номер дня в году (нумерация с 0) | От 0 до 365 |
| weekday | Полное наименование дня недели | От Sunday до Saturday |
| month | Полное наименование месяца, например January или March | от January до December |
| 0 | Колическтво секунд, прошедших с начала Эпохи Unix (The Unix Epoch), подобно значению, возвращаемому функцией time() и используемому функцией date(). | Платформо-зависимое, в большинстве случаев от-2147483648 до 2147483647. |
Иногда встречается, что дату в базе MySQL записывают не в поле Date, а в поле типа Int, и дата записывается в секундах. И чтобы получить вывод в читабельном варианте, можно использовать в запросе следующую конструкцию.
К примеру, дата у нас записана в поле mydate, таблицы users типа INT, тогда наш запрос будет таким:
|
1 2 3 |
SELECT DATE_FORMAT(FROM_UNIXTIME(mydate),'%d.%m.%Y') FROM users; |
Еще есть одна рекомендация, это установка временной зоны, чтобы время соответствовало вашему региону
|
1 2 3 4 |
date_default_timezone_set( 'Europe/Kiev' ); date_default_timezone_set( 'Europe/Moscow' ); |

