W3docs

idate()

Функция idate() в PHP извлекает отдельный компонент даты или времени из Unix-метки времени и возвращает его как целое число.

idate() — встроенная функция PHP, которая извлекает один компонент даты или времени из Unix-метки времени и возвращает его в виде целого числа. Название расшифровывается как integer date (целочисленная дата). В отличие от date(), которая формирует строку из одного или нескольких символов формата, idate() принимает ровно один символ формата и возвращает простое число, с которым можно сразу выполнять математические операции.

На этой странице описаны синтаксис, поддерживаемые символы формата, запускаемые примеры, отличия от date() и типичные подводные камни.

Синтаксис

idate(string $format, ?int $timestamp = null): int|false
  • $format — один символ формата (см. таблицу ниже). Передача строки длиннее одного символа вызывает предупреждение и возвращает false.
  • $timestamp — необязательная Unix-метка времени (секунды с 1 января 1970 года, UTC). Если не указана, используются текущие дата и время.

Функция возвращает целое число или false в случае ошибки.

Символы формата

idate() поддерживает подмножество символов формата date() — только те, что производят числовое значение.

КодВозвращаетПример
YЧетырёхзначный год2023
yДвузначный год23
mНомер месяца (1–12)3
nНомер месяца (то же, что m)3
dДень месяца (1–31)5
jДень месяца (то же, что d)5
HЧас, 24-часовой формат (0–23)17
GЧас, 24-часовой формат (то же, что H)17
iМинуты (0–59)30
sСекунды (0–59)45
NДень недели по ISO (1 = понедельник … 7 = воскресенье)7
wДень недели (0 = воскресенье … 6 = суббота)0
zДень года, начиная с нуля (0–365)63
tКоличество дней в заданном месяце31
LВисокосный год? 1 — да, 0 — нет0
UСама Unix-метка времени1678037445

Важно: idate() возвращает число, а не строку с ведущим нулём. idate('m') для марта вернёт целое число 3, а не "03". Если нужен ведущий ноль, используйте date('m'), которая возвращает строку "03".

Базовый пример

<?php
// March 5, 2023, 17:30:45
$timestamp = mktime(17, 30, 45, 3, 5, 2023);

echo idate('Y', $timestamp) . "\n"; // 2023
echo idate('m', $timestamp) . "\n"; // 3
echo idate('d', $timestamp) . "\n"; // 5
echo idate('H', $timestamp) . "\n"; // 17
echo idate('i', $timestamp) . "\n"; // 30
echo idate('s', $timestamp) . "\n"; // 45

Поскольку возвращаемое значение является целым числом, его можно сразу использовать в арифметических операциях и сравнениях:

<?php
$timestamp = mktime(17, 30, 45, 3, 5, 2023);

if (idate('N', $timestamp) >= 6) {
    echo "It's the weekend.\n";
} else {
    echo "It's a weekday.\n";
}

// March 5, 2023 was a Sunday (N = 7), so this prints:
// It's the weekend.

Использование текущего времени

Если второй аргумент опущен, idate() использует текущие дату и время, что делает её удобной для быстрых проверок:

<?php
$currentYear = idate('Y');

echo "The current year is {$currentYear}.\n";

// Detect a leap year
echo idate('L') ? "This year is a leap year.\n" : "This year is not a leap year.\n";

idate() и date()

idate()date()
Длина форматаТолько один символЛюбое количество символов
Тип возвращаемого значенияint (или false)string
Ведущие нулиНикогда (3)Да, где определено ("03")
Сценарий использованияНужно число для вычислений или сравненияНужна отформатированная, удобочитаемая строка
<?php
$timestamp = mktime(9, 5, 0, 4, 2, 2024);

echo date('m', $timestamp) . "\n";  // "04"  (string, zero-padded)
echo idate('m', $timestamp) . "\n"; // 4     (integer, no padding)

Когда использовать

Используйте idate(), когда вам нужен отдельный компонент даты или времени в виде числа — например, для построения счётчика, сравнения двух значений, индексирования в массиве или дальнейших вычислений. Если цель — отобразить отформатированную дату или время, используйте date() (или strtotime() для разбора текста в метку времени).

Подводные камни

  • Нет поддержки форматов из нескольких символов. idate('Y-m-d') не работает — выдаёт предупреждение и возвращает false. Вызывайте idate() отдельно для каждого компонента или используйте date().
  • Нет ведущих нулей. Не полагайтесь на idate() для вывода фиксированной ширины: ведущие нули всегда отбрасываются.
  • false выглядит как 0. При ошибке idate() возвращает false, которое в нестрогом сравнении равно 0. Используйте строгую проверку (=== false), если настоящий 0 (например, воскресенье при использовании w) является допустимым результатом.

Связанные функции

  • date() — форматирует метку времени в строку.
  • mktime() — создаёт Unix-метку времени из компонентов даты и времени.
  • strtotime() — разбирает строку с датой на английском языке в метку времени.
  • time() — возвращает текущую Unix-метку времени.

Практика

Практика

Практика
Что делает функция idate() в PHP?
Что делает функция idate() в PHP?
Was this page helpful?