Работа с датами в PHP. Часть 1
Размещено 20 ноября 2009 | Просмотров: 2 511
в рубрике PHP | 3 комментария
В интернете на форумах и блогах, посвященных созданию сайтов часто возникают вопросы, касающиеся формирования даты в PHP. одних интересует создание дат, других — преобразование, третьих — локализация. В данном посте я попробую охватить ответы на большинство таких вопросов.
1. PHP. Текущая дата.
Для того, чтобы определить текущую дату на сервере, в PHP существует функция time(),возвращающая количество секунд, прошедших с начала 1970 года. Тем, кто только начинает свое знакомство с PHP, такой формат может показаться странным и непонятным. Пусть он не столь нагляден, как стандартная дата, но у него есть одно существенное достоинство — удобство складывать и вычитать времена.
А что же делать, если не нужно проделывать с датами никаких операций, а нужно просто вывести текущую дату в нужном формате? Для этого стоит воспользоваться функцией date(). У этой функции нужно задать параметр, отвечающий за то, что функция отобразит. Например так:
echo date("d.m.Y G:i:s");
Эта функция выведет что-то типа этого: «20.11.2009 22:33:20«. Наиболее часто используемые параметры:
- Y — отображение года в 4-х цифрах (2009)
- y — год в 2-х цифрах (09)
- m — номер месяца с ведущими нулями (05)
- M — сокращенное англоязычное наименование месяца (Jan)
- F — полное англоязычное наименование месяца (January)
- n — номер месяца без ведущих нулей (1)
- d — день месяца с ведущими нулями (05)
- j — день месяца без ведущих нулей (5)
- D — сокращенное англоязычное наименование недели (Mon)
- l — полное англоязычное наименование недели (Mon)
- g — часы в 12-часовом формате без ведущих нулей (5)
- G — часы в 24-часовом формате без ведущих нулей (15)
- h — часы в 12-часовом формате с ведущими нулями (05)
- H — часы в 24-часовом формате с ведущими нулями (05)
- i — минуты с ведущими нулями (05)
- s — секунды с ведущими нулями (05)
Остальные параметры используются не так часто и их легко отыскать в Интернете.
Есть и более простая, но менее гибкая функция для вывода текущей даты со временем: getdate(). Функция возвращает ассоциативный массив со следующими ключами: minutes, hours, mday, wday, mon, year, yday, weekday, month, 0. Т.е. чтобы вывести текущий год, необходим такой код:
1 2 3 | $arraydate = getdate(); $year = $arraydate['year']; echo $year;</code> |
Как выводить текущую дату думаю понятно. Идем дальше.
2. PHP. Дата по-русски
Функция date() позволит нам вывести дату, например, такого вида: Sunday, 15 January 2009. Но для русскоязычных проектов это явно выглядит халтурой! Подавай в таком виде: Воскресенье, 15 января 2009. Данная задача решается как минимум двумя путями.
Путь первый. Обработка строк.
Если рассматривать англоязычную дату как обычную строку, то можно просто заменять в ней английское название на русское. Например, так:
1 2 3 4 5 6 7 | $arraydate = getdate(); $year = $arraydate['month']; if ($year == 'January') $year = 'Январь'; elseif ($year == 'February') $year = 'Февраль'; // Все месяцы не перечисляю, кому надо - сам дополнит. elseif ($year == 'December') $year = 'Декабрь'; echo $year; |
Но метод не очень профессиональный. Зачем писать столько кода, когда можно воспользоваться вторым путем.
Путь второй. Стандартная функция.
Для начала нам нужно устанавлить локальную информацию с помощью функции setlocale.
1 | setlocale(LC_ALL, 'rus_RUS'); |
Затем, с помощью функции strftime. Эта функция возвращает текущее время. Например, так:
1 | echo strftime ("%d %B %Y", time()) |
При этом будет выведено 20 ноября 2009. Как видите, размер кода получился значительно меньше!
На сегодня все, а в следующем посте мы рассмотрим такие вопросы:
- Сравнение дат
- Преобразование даты.
Зимние шины от одного из лидеров шинного ритейла. Торгово-сервисный шинный центр расположен по адресу: Можайское ш., д.17.
Интернет-магазине кукол Bratz предлагает новые серии кукол и наборов братз.
Похожие посты
Этот блог находят по фразам:
Комментарии
Оставляй комментарии и попади в ТОП5 комментаторов!
3 комментария на “Работа с датами в PHP. Часть 1”
Написать комментарий

(3 голосов, средний: 4,33 из 5)
в функции
echo strftime (»%d %B %Y», time())
такие кавычки новичков могут сбить с толку
Поправил, спасибо!
[...] Новичкам в PHP будет полезна статья Работа с датами в PHP. Часть 1 [...]