Помощник Date (дата)
Помощник Date содержит функции, которые помогут вам работать с датами.
Загрузка этого помощника
$this->load->helper('date');
Доступны следующие функции:
now()
Возвращает текущее время в формате Unix timestamp, полученное либо в локальном серверном времени, либо в 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 timestamp.
Поддерживаемые форматы:
Константа | Описание | Пример |
---|---|---|
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 timestamp на вход и возвращает GMT. Пример:
$now = time();
$gmt = local_to_gmt($now);
gmt_to_local()
Принимает Unix timestamp (ссылающийся на GMT) на входе и конвертирует его в локализованную временную метку, основываясь на временной зоне и летнем/зимнем времени. Пример:
$timestamp = '1140153693';
$timezone = 'UM8';
$daylight_saving = TRUE;
echo gmt_to_local($timestamp, $timezone, $daylight_saving);
Примечание: Список временных зон смотрите в справочнике в низу этой страницы.
mysql_to_unix()
Принимает MySQL Timestamp на входе и возвращает как 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/<ваш-язык>/date_lang.php
days_in_month()
Возвращает количество дней в данном месяце данного года. Принимает во внимание високосные годы. Пример:
echo days_in_month(06, 2005);
Если второй параметр пуст, будет использован текущий год.
timezones()
Принимает ссылку на временную зону (смотрите список временных зон ниже), и возвращает количество часов — смещение от UTC.
echo timezones('UM5');
Эта функция полезна, при использовании вместе с timezone_menu().
timezone_menu()
Генерирует ниспадающий список временных зон, вроде этого:
Это меню полезно, если вы запускаете сайт с членством, в котором ваши пользователи могут указывать их локальные временные зоны.
Первый параметр позволяет вам устанавливать выбранный элемент меню. Например, чтобы установить Тихоокеанское время по умолчанию, сделайте так:
echo timezone_menu('UM8');
Второй параметр позволяет вам установить имя CSS класса для этого меню.
Примечание: Текст, содержащийся в меню, находится в языковом файле: language/<your_lang>/date_lang.php
Справочник временных зон
Примечание переводчика. Мы перевели их в языковом файле CI 2.0.0, который теперь доступен по адресу http://codeigniter.com/wiki/RussianСледующая таблица содержит временные зоны и их местонахождение.
Временная зона | Местонахождение |
---|---|
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 |