Cómo convertir DateTime a cadena en PHP

Ralfh Bryan Perez 30 enero 2023
  1. Usando el método format() de la clase DateTime
  2. Usando el date_format() método
  3. Utilizando formatos predefinidos en date_d.php
  4. Usando list() para convertir DateTime a String en PHP
Cómo convertir DateTime a cadena en PHP

Convertir DateTime a cadena en PHP es bastante fácil, hay funciones útiles disponibles que están pensadas para este propósito como format() de la clase DateTime, date_format(), usando los formatos predefinidos o usando list().

Usando el método format() de la clase DateTime

PHP tiene una clase DateTime para manejar la fecha y la hora. Ha estado disponible desde la versión 5.2 de PHP.

Algunas razones por las que usar DateTime sobre las funciones tradicionales de PHP para manejar las fechas:

  • Es capaz de procesar más formatos de cadenas
  • Es más fácil que otras funciones.
  • La interfaz encapsula la lógica del back-end con una interfaz limpia para usar.

Uno de los métodos útiles de la clase DateTime es el format(), devuelve la cadena de fecha formateada según el formato dado.

Ejemplo:

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

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

La $stringDate es una cadena con el formato proporcionado.

Nota: El DateTime->format() no soporta realmente los microsegundos.

Usando el date_format() método

El método date_format() devolverá un nuevo objeto DateTime, luego formateará la fecha de acuerdo al formato dado.

Ejemplo:

$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

El date_create_from_format() está siendo usado para analizar una cadena de tiempo de acuerdo al formato proporcionado. Esta función acepta tres parámetros que son format, time y la timezone (opcional).

En el ejemplo anterior, el date_format() procesa la fecha creada para convertirla en una cadena.

Utilizando formatos predefinidos en date_d.php

Lista de formatos predefinidos:

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");

Ejemplo de uso:

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

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

El ejemplo anterior utiliza uno de los formatos predefinidos, por lo que no es necesario proporcionarlo realmente.

Usando list() para convertir DateTime a String en PHP

La función list() puede utilizarse para asignar valores a una lista de variables en una sola operación, pero sólo funciona con matrices numéricas. Cuando el array se asigna a múltiples valores, el primer elemento del array se asignará a la primera variable, y así sucesivamente, hasta el final del número de variables. Sin embargo, el número de variables no puede ser mayor que la longitud del array numérica.

Ejemplo:

$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

Usando la función list(), puedes usar fácilmente $day, $month, $year, $hour, $min, y $sec como una variable.

Artículo relacionado - PHP Date

Artículo relacionado - PHP DateTime

Artículo relacionado - PHP String