Date Helper
В файле Date Helper содержатся функции, которые помогут вам работать с датами.
Загрузка этого помощника
Этот помощник загружается с помощью следующего кода:
$this->load->helper('date');
Доступные функции
Доступны следующие функции:
-
now([$timezone = NULL]) -
Параметры: - $timezone (string) – Часовой пояс
Возвращает: Маркер времени Unix
Тип возвращаемого значения: int
Возвращает текущее время в виде маркера времени Unix, ссылающегося либо на локальное время сервера, либо на любой поддерживаемый PHP часовой пояс, в зависимости от настройки «справочной точки времени» в вашем конфигурационном файле. Если вы не хотите устанавливать основную справочную точку времени в какой-либо другой поддерживаемый PHP часовой пояс (что обычно делается, если у вас сайт, позволяющий каждому пользователю устанавливать свои собственные настройки часового пояса), использование этой функции не имеет преимуществ по сравнению с функцией PHP
time().echo now('Australia/Victoria');Если часовой пояс не указан, он вернет
time(), в зависимости от настройки time_reference.
-
mdate([$datestr = ''[, $time = '']]) -
Параметры: - $datestr (string) – Строка даты
- $time (int) – Маркер времени Unix
Возвращает: Дата в формате MySQL
Тип возвращаемого значения: string
Эта функция идентична функции 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([$fmt = 'DATE_RFC822'[, $time = NULL]]) -
Параметры: - $fmt (string) – Формат даты
- $time (int) – Маркер времени Unix
Возвращает: Отформатированная дата или FALSE при неверном формате
Тип возвращаемого значения: string
Позволяет генерировать строку даты в одном из нескольких стандартных форматов.
Пример:
$format = 'DATE_RFC822'; $time = time(); echo standard_date($format, $time);
Примечание
Эта функция устарела. Используйте вместо неё встроенную функцию
date()в сочетании с константами формата DateTime:echo date(DATE_RFC822, time());
Поддерживаемые форматы:
Константа Описание Пример DATE_ATOM Atom 2005-08-15T16:13:03+0000 DATE_COOKIE HTTP Cookies Вс, 14 авг 2005 16:13:03 UTC DATE_ISO8601 ISO-8601 2005-08-14T16:13:03+00:00 DATE_RFC822 RFC 822 Вс, 14 авг 05 16:13:03 UTC DATE_RFC850 RFC 850 Воскресенье, 14-авг-05 16:13:03 UTC DATE_RFC1036 RFC 1036 Воскресенье, 14-авг-05 16:13:03 UTC DATE_RFC1123 RFC 1123 Вс, 14 авг 2005 16:13:03 UTC DATE_RFC2822 RFC 2822 Вс, 14 авг 2005 16:13:03 +0000 DATE_RSS RSS Вс, 14 авг 2005 16:13:03 UTC DATE_W3C W3C 2005-08-14T16:13:03+0000
-
local_to_gmt([$time = '']) -
Параметры: - $time (int) – Маркер времени Unix
Возвращает: Маркер времени Unix
Тип возвращаемого значения: int
Принимает на вход маркер времени Unix и возвращает его в формате GMT.
Пример:
$gmt = local_to_gmt(time());
-
gmt_to_local([$time = ''[, $timezone = 'UTC'[, $dst = FALSE]]]) -
Параметры: - $time (int) – Маркер времени Unix
- $timezone (string) – Часовой пояс
- $dst (bool) – Активен ли DST
Возвращает: Маркер времени Unix
Тип возвращаемого значения: int
Принимает на вход маркер времени Unix (отнесённый к GMT) и преобразует его в локальный маркер времени, основываясь на переданном часовом поясе и значении летнего времени.
Пример:
$timestamp = 1140153693; $timezone = 'UM8'; $daylight_saving = TRUE; echo gmt_to_local($timestamp, $timezone, $daylight_saving);
Примечание
Список часовых поясов см. в конце этой страницы.
-
mysql_to_unix([$time = '']) -
Параметры: - $time (string) – Маркер времени MySQL
Возвращает: Маркер времени Unix
Тип возвращаемого значения: int
Принимает на вход маркер времени MySQL и возвращает его в виде маркера времени Unix.
Пример:
$unix = mysql_to_unix('20061124092345');
-
unix_to_human([$time = ''[, $seconds = FALSE[, $fmt = 'us']]]) -
Параметры: - $time (int) – Маркер времени Unix
- $seconds (bool) – Показывать ли секунды
- $fmt (string) – Формат (us или euro)
Возвращает: Отформатированная дата
Тип возвращаемого значения: string
Принимает на вход маркер времени Unix и возвращает его в читаемом формате с этим прототипом:
YYYY-MM-DD HH:MM:SS AM/PM
Это может быть полезно, если вам нужно отобразить дату в форме для отправки.
Время можно форматировать с секундами или без них, а также в европейском или американском формате. Если передан только маркер времени, то будет возвращено время без секунд в американском формате.
Примеры:
$now = time(); echo unix_to_human($now); // U.S. time, no seconds echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds
-
human_to_unix([$datestr = '']) -
Параметры: - $datestr (int) – Строка даты
Возвращает: Маркер времени Unix или FALSE при ошибке
Тип возвращаемого значения: int
Обратная функция к функции
unix_to_time(). Принимает «человеческую» дату в качестве входных данных и возвращает маркер времени Unix. Это полезно, если вы принимаете даты в «человеческом» формате, переданные через форму. Возвращает boolean FALSE, если строка даты, переданная ей, не отформатирована как указано выше.Пример:
$now = time(); $human = unix_to_human($now); $unix = human_to_unix($human);
-
nice_date([$bad_date = ''[, $format = FALSE]]) -
Параметры: - $bad_date (int) – Плохо отформатированная строка даты
-
$format (string) – Формат даты для возврата (как в функции PHP
date())
Возвращает: Отформатированная дата
Тип возвращаемого значения: string
Эта функция может принимать плохо отформатированные строки даты и преобразовывать их в что-то полезное. Также она принимает и хорошо отформатированные даты.
Функция по умолчанию возвращает маркер времени Unix. Вы можете, по желанию, передать строку формата (того же типа, что и у функции PHP
date()) в качестве второго параметра.Пример:
$bad_date = '199605'; // Should Produce: 1996-05-01 $better_date = nice_date($bad_date, 'Y-m-d'); $bad_date = '9-11-2001'; // Should Produce: 2001-09-11 $better_date = nice_date($bad_date, 'Y-m-d');
Примечание
Эта функция устарела. Используйте вместо неё встроенный класс DateTime PHP.
-
timespan([$seconds = 1[, $time = ''[, $units = '']]]) -
Параметры: - $seconds (int) – Количество секунд
- $time (string) – Маркер времени Unix
- $units (int) – Количество единиц времени для отображения
Возвращаемое значение: Отформатированная разница во времени
Тип возвращаемого значения: строка
Форматирует маркер времени Unix так, чтобы он отображался следующим образом:
1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
Первый параметр должен содержать маркер времени Unix. Второй параметр должен содержать маркер времени, больший, чем первый. Третий параметр необязателен и ограничивает количество отображаемых единиц времени.
Если второй параметр пуст, будет использоваться текущее время.
Наиболее распространенное применение этой функции — показать, сколько времени прошло с определённой точки в прошлом до настоящего момента.
Пример:
$post_date = '1079621429'; $now = time(); $units = 2; echo timespan($post_date, $now, $units);
Примечание
Текст, генерируемый этой функцией, находится в следующем файле языка:
language/<your_lang>/date_lang.php
-
days_in_month([$month = 0[, $year = '']]) -
Параметры: - $month (int) – числовой месяц
- $year (int) – числовой год
Возвращаемое значение: Количество дней в указанном месяце
Тип возвращаемого значения: целое число
Возвращает количество дней в заданном месяце/году. Учитывает високосные годы.
Пример:
echo days_in_month(06, 2005);
Если второй параметр пуст, будет использован текущий год.
Примечание
Эта функция будет использовать алиас встроенной функции
cal_days_in_month(), если она доступна.
-
date_range([$unix_start = ''[, $mixed = ''[, $is_unix = TRUE[, $format = 'Y-m-d']]]]) -
Параметры: - $unix_start (int) – Маркер времени Unix начальной даты диапазона
- $mixed (int) – Маркер времени Unix конечной даты диапазона или интервал в днях
- $is_unix (bool) – установить в FALSE, если $mixed не является маркером времени
-
$format (string) – Формат вывода даты, такой же, как в
date()
Возвращаемое значение: Массив дат
Тип возвращаемого значения: массив
Возвращает список дат в указанный период.
Пример:
$range = date_range('2012-01-01', '2012-01-15'); echo "First 15 days of 2012:"; foreach ($range as $date) { echo $date."\n"; }
-
timezones([$tz = '']) -
Параметры: - $tz (string) – Численный часовой пояс
Возвращаемое значение: Разница во времени в часах от UTC
Тип возвращаемого значения: целое число
Принимает ссылку на часовой пояс (для списка допустимых часовых поясов см. «Ссылка на часовые пояса» ниже) и возвращает количество часов, смещенных от UTC.
Пример:
echo timezones('UM5');Эта функция полезна при использовании с
timezone_menu().
-
Параметры: - $default (string) – Часовой пояс
- $class (string) – Имя класса
- $name (string) – Название меню
- $attributes (mixed) – Атрибуты HTML
Возвращаемое значение: HTML выпадающее меню с часовыми поясами
Тип возвращаемого значения: строка
Генерирует выпадающее меню часовых поясов, например, такое:
Это меню полезно, если у вас сайт членства, где пользователи могут установить своё значение часового пояса.
Первый параметр позволяет установить состояние «выбрано» в меню. Например, чтобы установить Тихоокеанское время по умолчанию, сделайте следующее:
echo timezone_menu('UM8');См. ссылку на часовые пояса ниже, чтобы увидеть значения этого меню.
Второй параметр позволяет установить имя класса CSS для меню.
Четвёртый параметр позволяет установить один или несколько атрибутов для генерируемого тега select.
Примечание
Текст, содержащийся в меню, находится в следующем файле языка:
language/<your_lang>/date_lang.php
Ссылка на часовые пояса
В следующей таблице указан каждый часовой пояс и его расположение.
Обратите внимание, что некоторые списки местностей были сокращены для ясности и форматирования.
| Временная зона | Расположение |
|---|---|
| UM12 | (UTC - 12:00) Остров Бейкер/Остров Хоуленд |
| UM11 | (UTC - 11:00) Самоанское время, Ниуэ |
| UM10 | (UTC - 10:00) Гавайско-Алеутское стандартное время, Острова Кука |
| UM95 | (UTC - 09:30) Маркизские острова |
| UM9 | (UTC - 09:00) Аляскинское стандартное время, острова Гамбиера |
| UM8 | (UTC - 08:00) Тихоокеанское стандартное время, остров Клиппертон |
| UM7 | (UTC - 07:00) Горное стандартное время |
| UM6 | (UTC - 06:00) Центральное стандартное время |
| UM5 | (UTC - 05:00) Восточное стандартное время, Западный Карибский регион |
| UM45 | (UTC - 04:30) Венесуэльское стандартное время |
| UM4 | (UTC - 04:00) Атлантическое стандартное время, Восточный Карибский регион |
| UM35 | (UTC - 03:30) Ньюфаундлендское стандартное время |
| UM3 | (UTC - 03:00) Аргентина, Бразилия, Французская Гвиана, Уругвай |
| UM2 | (UTC - 02:00) Южная Георгия/Южные Сандвичевы острова |
| UM1 | (UTC -1:00) Азорские острова, острова Зеленого Мыса |
| UTC | (UTC) Гринвичское среднее время, Западноевропейское время |
| UP1 | (UTC +1:00) Центральноевропейское время, Западное африканское время |
| UP2 | (UTC +2:00) Центральноафриканское время, Восточноевропейское время |
| UP3 | (UTC +3:00) Московское время, Восточноафриканское время |
| UP35 | (UTC +3:30) Иранское стандартное время |
| UP4 | (UTC +4:00) Азербайджанское стандартное время, Самарское время |
| UP45 | (UTC +4:30) Афганистан |
| UP5 | (UTC +5:00) Пакистанское стандартное время, время Екатеринбурга |
| UP55 | (UTC +5:30) Индийское стандартное время, Шри-ланкийское время |
| UP575 | (UTC +5:45) Непальское время |
| UP6 | (UTC +6:00) Бангладешское стандартное время, время Бутана, Омское время |
| UP65 | (UTC +6:30) Кокосовые острова, Мьянма |
| UP7 | (UTC +7:00) Красноярское время, Камбоджа, Лаос, Таиланд, Вьетнам |
| UP8 | (UTC +8:00) Австралийское западное стандартное время, Пекинское время |
| UP875 | (UTC +8:45) Австралийское центрально-западное стандартное время |
| UP9 | (UTC +9:00) Японское стандартное время, Корейское стандартное время, Якутск |
| UP95 | (UTC +9:30) Австралийское центральное стандартное время |
| UP10 | (UTC +10:00) Австралийское восточное стандартное время, Владивостокское время |
| UP105 | (UTC +10:30) Остров Лорд-Хау |
| UP11 | (UTC +11:00) Среднеколымское время, Соломоновы Острова, Вануату |
| UP115 | (UTC +11:30) Остров Норфолк |
| UP12 | (UTC +12:00) Фиджи, острова Гилберта, Камчатка, Новая Зеландия |
| UP1275 | (UTC +12:45) Стандартное время островов Чатэм |
| UP13 | (UTC +13:00) Время островов Феникс, Тонга |
| UP14 | (UTC +14:00) Острова Лайн |
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/helpers/date_helper.html