Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.0

Search User Guide

# Помощник Date

Файлы в помощнике Date помогут работать с датами.

## Загрузка этого помощника

Этот помощник загружается следующим кодом:

`$this->load->helper('date');`

Доступны следующие функции:

## now()

Возвращает текущее время в формате Unix, полученное в локальном времени сервера или в GMT, основываясь на установках "time reference" в вашем конфигурационном файле. Если вы не собираетесь устанавливать основное время в GMT (что нормально, если вы делаете сайт для пользователей, которые живут в других временных зонах), есть смысл в использовании этой функции, вместо родной функции PHP time();.

## mdate()

Эта функция идентична функции PHP date(), за исключением того, что она позволяет использовать кодирование даты в стиле MySQL, когда каждая буква предваряется знаком процентов: %Y %m %d и т.д.

Смысл в обработке дат этим способом в том, что вы не должны беспокоиться насчет экранирования любых символов, которые не являются фрагментами даты, как вам бы потребовалось при использовании функции date(). Пример:

`$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";
$time = time();
echo mdate($datestring, $time);`

Если временная метка не включена во второй параметр, будет использовано текущее время.

## standard_date()

Позволяет вам генерировать строки дат в одном из нескольких стандартных форматов. Пример:

`$format = 'DATE_RFC822';
$time = time();
echo standard_date($format, $time);`

Первый параметр содержит формат, второй должен содержать метку времени Unix.

Поддерживаемые форматы:

Константа | Описание | Пример
--- | --- | ---
DATE_ATOM | Atom | 2005-08-15T16:13:03+0000
DATE_COOKIE | HTTP Cookies | Sun, 14 Aug 2005 16:13:03 UTC
DATE_ISO8601 | ISO-8601 | 2005-08-14T16:13:03+00:00
DATE_RFC822 | RFC 822 | Sun, 14 Aug 05 16:13:03 UTC
DATE_RFC850 | RFC 850 | Sunday, 14-Aug-05 16:13:03 UTC
DATE_RFC1036 | RFC 1036 | Sunday, 14-Aug-05 16:13:03 UTC
DATE_RFC1123 | RFC 1123 | Sun, 14 Aug 2005 16:13:03 UTC
DATE_RFC2822 | RFC 2822 | Sun, 14 Aug 2005 16:13:03 +0000
DATE_RSS | RSS | Sun, 14 Aug 2005 16:13:03 UTC
DATE_W3C | World Wide Web Consortium | 2005-08-14T16:13:03+0000

## local_to_gmt()

Принимает метку времени Unix на вход, и возвращает GMT. Пример:

`$now = time();
$gmt = local_to_gmt($now);`

## gmt_to_local()

Принимает метку времени UNIX (ссылаясь на GMT) на вход, и конвертирует в локализованную метку времени, основываясь на переданных временной зоне и летнем времени. Пример:

`$timestamp = '1140153693';
$timezone = 'UM8';
$daylight_saving = TRUE;
echo gmt_to_local($timestamp, $timezone, $daylight_saving);`

Примечание: Смотрите список временных зон внизу этой страницы.

## mysql_to_unix()

Принимает метку времени MySQL на вход, и возвращает в формате Unix. Пример:

`$mysql = '20061124092345';
$unix = mysql_to_unix($mysql);`

## unix_to_human()

Принимает метку Unix на вход и возвращает удобный для человека формат, в соответствии с этим прототипом:

`YYYY-MM-DD HH:MM:SS AM/PM`

Это может быть полезным, если вам нужно отобразить дату в поле формы.

Время может быть форматировано с секундами или без них, может быть установлено в европейском или в американском формате. Если передана только временная метка, она вернет время без секунд в американском формате. Пример:

`$now = time();
echo unix_to_human($now); // американское время без секунд
echo unix_to_human($now, TRUE, 'us'); // американское время с секундами
echo unix_to_human($now, TRUE, 'eu'); // европейское время с секундами`

## human_to_unix()

Противоположность предудыщей функции. Принимает «человеческое» время на вход, и отдает его в формате Unix. Эта функция полезна, если вы принимаете данные, переданные через форму. Возвращает FALSE, ели переданая строка не форматирована, как показано выше. Пример:

`$now = time();
$human = unix_to_human($now);
$unix = human_to_unix($human);`

## timespan()

Форматирует метку времени Unix в это:

`1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes`

Первый параметр должен содержать метку времени Unix. Второй параметр должен содержать метку времени, которая больше, чем первая. Если второй параметр пуст, используется текущее время. В большинстве случаев эта функция будет использоваться для отображения количества времени, прошедшего от одного момента до другого. Пример:

`$post_date = '1079621429';
$now = time();
echo timespan($post_date, $now);`

Примечание: Генерируемый текст основывается на данных их языкового файла: language/<your_lang>/date_lang.php

## days_in_month()

Возвращает количество дней в указанном месяце указанного года. Учитывает високосные годы. Пример:

`echo days_in_month(06, 2005);`

Если второй параметр пуст, используется текущий год.

## timezones()

Принимает ссылку на временную зону (смотрите список внизу) и возвращает количество часов смещения.

`echo timezones('UM5');`

Эта функция полезна при использовании вместе с timezone_menu().

## timezone_menu()

Генерирует ниспадающее меню, вроде этого:

Это меню может быть полезно, если вы запускаете сайт, где пользователи могут устанавливать локальные временные зоны.

Первый параметр позволяет устанавливать выбранное значение. Например, чтобы установить тихоокеанское время:

`echo timezone_menu('UM8');`

Смотрите внизу список временных зон.

Второй параметр позволяет указать имя класса CSS для меню.

Примечание: Текст, содержащийся в меню, можно найти в языковом файле: language/<your_lang>/date_lang.php

## Справка по временным зонам

Time Zone | Location
--- | ---
UM12 | (UTC - 12:00) Enitwetok, Kwajalien
UM11 | (UTC - 11:00) Nome, Midway Island, Samoa
UM10 | (UTC - 10:00) Hawaii
UM9 | (UTC - 9:00) Alaska
UM8 | (UTC - 8:00) Pacific Time
UM7 | (UTC - 7:00) Mountain Time
UM6 | (UTC - 6:00) Central Time, Mexico City
UM5 | (UTC - 5:00) Eastern Time, Bogota, Lima, Quito
UM4 | (UTC - 4:00) Atlantic Time, Caracas, La Paz
UM25 | (UTC - 3:30) Newfoundland
UM3 | (UTC - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is.
UM2 | (UTC - 2:00) Mid-Atlantic, Ascention Is., St Helena
UM1 | (UTC - 1:00) Azores, Cape Verde Islands
UTC | (UTC) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia
UP1 | (UTC + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome
UP2 | (UTC + 2:00) Kaliningrad, South Africa, Warsaw
UP3 | (UTC + 3:00) Baghdad, Riyadh, Moscow, Nairobi
UP25 | (UTC + 3:30) Tehran
UP4 | (UTC + 4:00) Adu Dhabi, Baku, Muscat, Tbilisi
UP35 | (UTC + 4:30) Kabul
UP5 | (UTC + 5:00) Islamabad, Karachi, Tashkent
UP45 | (UTC + 5:30) Bombay, Calcutta, Madras, New Delhi
UP6 | (UTC + 6:00) Almaty, Colomba, Dhaka
UP7 | (UTC + 7:00) Bangkok, Hanoi, Jakarta
UP8 | (UTC + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei
UP9 | (UTC + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk
UP85 | (UTC + 9:30) Adelaide, Darwin
UP10 | (UTC + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok
UP11 | (UTC + 11:00) Magadan, New Caledonia, Solomon Islands
UP12 | (UTC + 12:00) Auckland, Wellington, Fiji, Marshall Island

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter