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()
Дивіться також
- DateTimeImmutable
- DateTimeImmutable::createFromFormat() - Розбирає рядок з датою згідно з вказаним форматом
- Формати дати та часу
- checkdate() - Перевіряє коректність дати за григоріанським календарем
- strptime() - Розбирає рядок дати/часу, згенерований функцією strftime