Работа с датами в PHP. Часть 1

Размещено 20 ноября 2009 | Просмотров: 378
в рубрике PHP | 4 комментария

Ужасно!ПлохоТак себеХорошоСупер! (Еще не оценили)
Загрузка ... Загрузка ...

Работа с датами в PHPВ интернете на форумах и блогах, посвященных созданию сайтов часто возникают вопросы, касающиеся формирования даты в 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”

  1. Never Lex от 26 ноября 2009 16:52

    в функции

    echo strftime (»%d %B %Y», time())

    такие кавычки новичков могут сбить с толку :)

  2. Семен Бруква от 9 декабря 2009 16:06

    Поправил, спасибо!

  3. yuriy88 от 1 мая 2010 20:53

    Всех с 1 мая!!)))

  4. Блог-шоу - выпуск 32 от 19 мая 2010 13:40

    [...] Новичкам в PHP будет полезна статья Работа с датами в PHP. Часть 1 [...]

Написать комментарий





Вы не робот?