Преобразование DateTime в строку в PHP

Статьи 25.06.2022 (обновлено)

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

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

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

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

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

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

Пример

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

Функция 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 в качестве переменной.

Сергей Ермилов
Опубликовано 31.05.2022
Категория: Статьи
Теги:

Добавить комментарий

Ваш адрес email не будет опубликован.