Работа с датами в PHP. Часть 1
Размещено 20 ноября 2009 | Просмотров: 378
в рубрике PHP | 4 комментария
В интернете на форумах и блогах, посвященных созданию сайтов часто возникают вопросы, касающиеся формирования даты в 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 комментаторов!
4 комментария на “Работа с датами в PHP. Часть 1”
Написать комментарий


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