PHP Strtotime: преобразование английского текста Datetime в TimeStamp

PHP поддерживает функции даты для обработки даты и времени для реализации и предоставляет метод для преобразования удобочитаемых дат в Unix Timestamp. Один из таких методов — strtotime (). Давайте посмотрим на это подробнее.

PHP strtotime ()

Strtotime () — это встроенная функция PHP String, которая используется для преобразования текстового описания даты и времени на английском языке в метку времени UNIX. Функция strtotime () принимает строковый параметр на английском языке, который представляет собой описание даты и времени.

Например, « now » относится к текущей дате в описание даты и времени на английском языке.

 strtotime (time, now)  ; 

Параметры

Параметр времени указывает строку даты/времени.

Параметр now указывает метку времени, используемую для вычисления возвращаемого значения. Это необязательный параметр.

Поскольку время/дата не статичны, результат будет отличаться.

Пример

См. следующий код.

  phpecho strtotime ("now"),  " n"; echo strtotime ("10 сентября 1993 г."), " n"; echo strtotime ("+ 1 день"), " n"; echo strtotime ("+ 2 неделя"), " n";  echo strtotime ("+ 3 недели 2 дня 4 часа 11 секунд"), " n"; echo strtotime ("следующий четверг"), " n"; echo strtotime ("последнее воскресенье"), " n"; 

См. следующий вывод.

 ➜ pro php app.php156473398774761920015648203871565943587156673559815652224001564272000➜ pro 

Получим текущую дату.

  phpecho date ("Ymd", strtotime ("now")); 

См. следующий вывод.

 ➜ pro php app.php2019-08-02 ➜ php 

Давайте получим дату от окончания этого года до одного года в будущем.

  phpecho date ("dmY", strtotime ("2019-12-25 +1 год")); 

См. следующий результат.

 ➜ pro php app.php25-12-2020 ➜ pro 

Хорошо, теперь давайте воспользуемся функцией str_replace ().

  php $  timestamp = strtotime (str_replace ('/', '-', '19.02.2019 ')); echo $ timestamp; 

См. вывод.

  ➜ pro php app.php1550534400 ➜ pro 

PHP strtotime timezone

Хорошо, давайте получим метку времени Часовой пояс America/Los_Angeles .

  Php $ dateStr = '2019-07-04'; $ timezone = 'America/Los_Angeles'; $ date = new DateTime ($ dateStr  , new DateTimeZone ($ timezone)); $ timestamp = $ date-> format ('U'); echo $ timestamp; 

Просмотреть вывод.

 ➜  pro php app.php1562223600 ➜ pro 

Использование strtotime для преобразования английского текста в дату

См. следующий код, в котором мы используют функцию strtotime для преобразования английского текста в данные.

  php $ textDate = "19 февраля 2004 г."; echo strtotime ($ textDate), " n"; echo date ("Ymd", strtotime ($ textDate)). " n  "; 

См. следующий вывод.

 ➜ pro php app.php10771488002004-02-19➜ pro 

Итак, у нас есть преобразовал текст в целое число и действительную дату.

Давайте напечатаем дату следующего воскресенья с сегодняшней даты. Ваш результат может отличаться, так как ваша текущая дата будет другой.

  Phpecho strtotime ("следующее воскресенье"), " n";  эхо-дата ("Г-м-д", strtotime ("следующее воскресенье")). " n";  

См. вывод.

 ➜ pro php app.php15648768002019-08-04➜ pro 

Strtotime ( ) не работает с форматом дд/мм/ГГГГ

Когда вы работаете над проектом, вы часто используете формат даты, который выглядит как дд// мм/ГГГГ .

Предположим, у вас есть дата в формате дд/мм/ГГГГ ; как вы можете преобразовать его в ГГГГ-мм-дд с помощью функции strtotime ()? Но когда вы примените к этому формату функцию strtotime () , она не сработает. Он работает только с форматом мм/дд/ГГГГ .

Даты в формате мм/дд/ГГГ или дд-мм-ГГГГ иллюстрируются разделителем между различными компонентами. Если в качестве разделителя используется косая черта (/), предполагается, что американский формат мм/дд/ГГГГ . Напротив, если разделителем является тире (-) или точка (.) , то европейский дд-мм-ГГГГ Предполагается формат .

См. следующий код.

//app.php $ date = '06/03/2021 '; $ date =  str_replace ('/', '-', $ date); echo date ('Ym-d', strtotime ($ date)); 

Вывод

 2021-03-06 

Преобразование strtotime в дату и время в PHP

Заключение

Функция strtotime () анализирует текстовое текстовое datetime на английском языке в метку времени Unix ( количество секунд с 1 января 1970 г., 00:00:00 по Гринвичу).

Если год указан в двузначном формате, значения от 0 до 69 сопоставляются с 2000-2069 и значения между 70-100 отображаются на 1970-2000 гг.

Вам нужно быть осторожным с датами в форматах m/d/y или dmy; если разделителем является косая черта (/), то предполагается американский m/d/y.

Если разделителем является тире (-) или точка (.), то ожидается европейский формат d-m-y. Если мы хотим избежать потенциальных ошибок, по возможности используйте даты ГГГГ-ММ-ДД или date_create_from_format ().

При использовании «следующий месяц», «последний месяц», «+1 месяц» , «-1 месяц» или любое сочетание +/- X месяцев. Это даст неинтуитивно понятные результаты 30 и 31 января.

Наконец, пример использования функции PHP strtotime () закончен.

Оцените статью
nanomode.ru
Добавить комментарий