Как преобразовать DateTime в строку в PHP

Преобразовать DateTime в строку в PHP довольно просто, для этого существуют такие полезные функции, как format() класса DateTime, date_format(), использование предопределенных форматов или list().

Использование метода format() в классе DateTime

В PHP есть класс DateTime для управления датой и временем. Он доступен с версии PHP 5.2.

Некоторые причины, по которым лучше использовать DateTime, чем традиционные функции PHP для управления датами:

  • Он способен обрабатывать больше форматов строк.
  • Проще, чем другие функции.
  • Интерфейс инкапсулирует внутреннюю логику с чистым интерфейсом для использования.

Один из полезных методов класса DateTimeformat(), он возвращает отформатированную строку даты в соответствии с заданным форматом.

Пример:

$theDate    = new DateTime('2020-03-08');
echo $stringDate = $theDate->format('Y-m-d H:i:s');

//output: 2020-03-08 00:00:00

Строка $stringDate — это строка с заданным форматом.

Справка. DateTime->format() на самом деле не поддерживает микросекунды.

Использование метода date_format()

Метод date_format() вернет новый объект DateTime и отформатирует его в соответствии с заданным форматом.

Пример:

$date = date_create_from_format('d M, Y', '08 Mar, 2020');
echo $newFormat = date_format($date,"Y/m/d H:i:s");

//output: 2020/03/08 00:00:00

В соответствии с заданным форматом функция date_create_from_format() используется для парсинга временной строки. Эта функция принимает три параметра: format (формат), time (время) и timezone (часовой пояс, необязательно).

В приведенном выше примере функция date_format() обрабатывает созданную дату, преобразуя ее в строку.

Использование предопределенных форматов в файле date_d.php

Список предопределенных форматов:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

Пример использования:

$dateFormat = new DateTime(); // this will return current date
echo $stringDate = $date->format(DATE_ATOM);

//output: 2020-03-08T12:54:56+01:00

В приведенном примере используется один из предопределенных форматов, поэтому нет необходимости указывать его.

Использование функции list() для преобразования DateTime в строку в PHP

Функция list() может использоваться для присвоения значений списку переменных за одну операцию, но работает только с числовыми массивами. Когда массиву присваивается несколько значений, первый элемент массива будет присвоен первой переменной, и так далее, до конца количества переменных. При этом количество переменных не может быть больше длины числового массива.

Пример:

$date = explode("/",date('d/m/Y/h/i/s')
list($day,$month,$year,$hour,$min,$sec) = $date);
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;

//output: 03/08/2020 02:01:06

Используя функцию list(), вы можете легко использовать $day, $month, $year, $hour, $min и $sec в качестве переменных.

Оригинал статьи
Опубликовано 5 октября 2024 в 13:59
Обновлено 4 ноября 2024 в 13:11
Категория: Блог
Теги: