strtotime

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

strtotime — Перетворює текстове подання дати англійською мовою на позначку часу Unix

Опис

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()****

Loading...

Приклад #2 Перевірка помилок

Loading...

Примітки

Зауваження :

"Відносна" дата в даному випадку також означає, що якщо конкретний компонент мітки дати/часу не вказано, він буде взятий дослівно з параметра 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 3:14:07).

Зауваження :

Коректний діапазон міток часу - це зазвичай дати з 13 грудня 1901 р. 20:45:54 UTC по 19 січня 2038 03:14:07 UTC. (Ці дати відповідають крайнім значенням 32-бітного цілого числа зі знаком.)

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

Зауваження :

Використовувати цю функцію для математичних операцій не рекомендовано. Краще користуватися методами DateTime::add() і DateTime::sub()

Дивіться також