Преобразовывает текстовое представление даты на английском языке в метку времени Unix

# strtotime

(PHP 4, PHP 5, PHP 7, PHP 8)

strtotime — Преобразовывает текстовое представление даты на английском языке в метку времени Unix

### Описание

function strtotime(string `$datetime`, ?int `$baseTimestamp` = `null`): int|false

Первым параметром функция ожидает строку с датой на английском языке, которая будет преобразована в метку времени Unix (количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC) относительно метки времени, переданной в параметр `baseTimestamp`, или текущего времени, если аргумент `baseTimestamp` опущен. Разбор строки даты определён в разделе «Форматы даты и времени» и содержит несколько тонких вопросов. Знание форматов упростит работу с функцией.

Внимание

Метка времени Unix, которую возвращает функция, не содержит данных о часовых поясах. Для расчётов с датой/временем обращаются к инструменту с бо́льшими способностями — классу DateTimeImmutable.

Каждый параметр функции будет использовать часовой пояс по умолчанию, если он не указан в нём. Соблюдают осторожность и не указывают разные метки времени в параметрах, если только так не было задумано. О способах установки часового пояса по умолчанию рассказано в описании функции date_default_timezone_get().

### Список параметров

`datetime`

  Строка даты и времени. Объяснение корректных форматов даёт раздел «Форматы даты и времени».

`baseTimestamp`

  Метка времени, которую функция будет использовать как основу для вычисления относительных дат.

### Возвращаемые значения

Функция возвращает метку времени, если выполнилась успешно, иначе значение `false`.

### Ошибки

Каждый вызов функции для работы с датой и временем генерирует ошибку уровня `E_WARNING` при неправильных настройках часового пояса. Смотрите также описание функции date_default_timezone_set().

### Список изменений

Версия | Описание
--- | ---
8.0.0 | Параметр `baseTimestamp` теперь принимает значение `null`.

### Примеры

Пример #1 Пример разбора англоязычного текстового описания даты и времени функцией strtotime()

    <?php

    echo strtotime("now"), "\n";
    echo strtotime("10 September 2000"), "\n";
    echo strtotime("+1 day"), "\n";
    echo strtotime("+1 week"), "\n";
    echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
    echo strtotime("next Thursday"), "\n";
    echo strtotime("last Monday"), "\n";

Пример #2 Проверка ошибок

    <?php

    $str = 'Not Good';

    if (($timestamp = strtotime($str)) === false) {
        echo "Строка ($str) недопустима";
    } else {
        echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
    }

### Примечания

> Замечание:

> «Относительная» дата в этом случае также означает, что если конкретный компонент метки даты и времени не указали, функция возьмёт его дословно из параметра `baseTimestamp`. Поэтому вызов `strtotime('February')` при запуске 31 мая 2022 года функция интерпретирует как `31 февраля 2022`, что перенесётся в метку времени `3 марта`, а в високосный год — `2 марта`. Вызов `strtotime('1 February')` или `strtotime('first day of February')` не допустит этой проблемы.

> Замечание:

> При двузначном указании количества лет значения 00-69 функция интерпретирует как 2000-2069, а 70-99 — 1970-1999. Замечания ниже рассказывают о возможных различиях на 32-битных системах (допустимые даты заканчиваются 2038-01-19 03:14:07).

> Замечание:

> Корректный диапазон меток времени 32-битного целого числа со знаком — даты с 13 декабря 1901 20:45:54 по времени UTC по 19 января 2038 03:14:07 по времени UTC.

> В 64-битных версиях PHP корректный диапазон меток времени практически бесконечен, поскольку 64 бита справляются с представлением около 293 миллиардов лет в обоих направлениях.

> Замечание:

> Использовать функцию для математических операций не рекомендуется. Лучше вызывать методы DateTime::add() и DateTime::sub().

### Смотрите также

- DateTimeImmutable
- DateTimeImmutable::createFromFormat() - Разбирает строку времени по заданному формату
- Форматы даты и времени
- checkdate() - Проверяет корректность даты по григорианскому календарю
- strptime() - Разбирает строку даты и времени, которую сгенерировала функция strftime

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open