Converti DateTime in String in PHP

Ralfh Bryan Perez 30 gennaio 2023
  1. Usa il metodo format() nella classe DateTime
  2. Usa il metodo date_format()
  3. Usa formati predefiniti in date_d.php
  4. Usa list() per convertire DateTime in String in PHP
Converti DateTime in String in PHP

Convertire DateTime in stringa in PHP è abbastanza facile, ci sono utili funzioni disponibili che sono pensate per questo scopo come format() della classe DateTime, date_format(), usando i formati predefiniti o usando list().

Usa il metodo format() nella classe DateTime

PHP ha una classe DateTime per la gestione di data e ora. È disponibile dalla versione PHP 5.2.

Alcuni motivi per cui utilizzare DateTime rispetto alle tradizionali funzioni PHP per gestire le date:

  • È in grado di elaborare più formati di stringa
  • È più facile di altre funzioni.
  • L’interfaccia incapsula la logica di back-end con un’interfaccia pulita da usare.

Uno dei metodi utili della classe DateTime è il format(), restituisce una stringa di data formattata secondo il formato dato.

Esempio:

$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 è una stringa con il formato fornito.

Nota
Il formato DateTime->() non supporta realmente i microsecondi.

Usa il metodo date_format()

Il metodo date_format() restituirà un nuovo oggetto DateTime e lo formatterà secondo il formato dato.

Esempio:

$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

Secondo il formato fornito, viene utilizzato date_create_from_format() per analizzare una stringa temporale. Questa funzione accetta tre parametri: format, time, e il timezone (opzionale).

Nell’esempio sopra, date_format() elabora la data di creazione per convertirla in una stringa.

Usa formati predefiniti in date_d.php

Elenco dei formati predefiniti:

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

Utilizzo di esempio:

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

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

L’esempio sopra utilizza uno dei formati predefiniti, quindi non è necessario fornirlo effettivamente.

Usa list() per convertire DateTime in String in PHP

La funzione list() può essere utilizzata per assegnare valori a una lista di variabili in un’unica operazione, ma funziona solo con array numerici. Quando l’array è assegnato a più valori, il primo elemento dell’array verrà assegnato alla prima variabile, e così via, fino alla fine del numero di variabili. Sebbene il numero di variabili non possa essere superiore alla lunghezza di un array numerica.

Esempio:

$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 funzione list(), puoi facilmente usare $day, $month, $year, $hour, $min e $sec come variabili.

Articolo correlato - PHP Date

Articolo correlato - PHP DateTime

Articolo correlato - PHP String