Преобразовать 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()
для преобразования 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
в качестве переменных.