Converti la stringa in data e data-ora in PHP
Per convertire una stringa in Date
e DateTime
, possono essere utilizzate diverse funzioni o metodi, come la combinazione di strtotime()
e date()
, utilizzando il metodo di classe DateTime::createFromFormat
o format()
Metodo all’interno della stessa classe, o la funzione incorporata PHP di date_create_from_format
.
Combinazione di strtotime()
e data
La funzione strtotime()
restituisce il numero di secondi trascorsi dal 1 gennaio 1970, proprio come il timestamp di una macchina Linux. Restituisce il totale dei secondi dal parametro fornito passato alla funzione.
Parametri:
Time/Date
(obbligatorio) - Questo parametro specifica la data / ora con formato stringa.Now
(opzionale) - Questo parametro è il timestamp che può essere utilizzato come base per il calcolo delle date relative
La funzione date()
è quella che formatta la data e l’ora locali e restituisce una nuova stringa di data formattata.
Parametri:
format
(obbligatorio) - Questo parametro specifica il formato della stringa fornita.timestamp
(opzionale) - Questo parametro è un intero UNIX timestamp e il valore predefinito è l’ora locale corrente.
Per usare correttamente sia strtotime()
che date()
, usa strtotime()
sulla prima data e poi usa date()
per riconvertirlo.
Esempio:
$oldDate = strtotime('03/08/2020');
$newDate = date('Y-m-d',$time);
echo $newDate;
//output: 2020-03-08
Nota: C’è un’enorme differenza tra /
e -
quando si utilizza come divisore per la formattazione di una data, se il separatore è una /
, si assume il formato americano m/d/y
; e se il divisore è un -
, si assume il formato europeo d-m-y
. Per evitare ambiguità, si consiglia di utilizzare le date ISO 8601 (YYYY-MM-DD)
.
Usa DateTime::createFromFormat
o date_create_from_format
Il DateTime::createFromFormat
è una funzione PHP incorporata che restituisce un nuovo oggetto DateTime
che rappresenta il formato di data e ora. D’altra parte, date_create_from_format
è uno stile procedurale che utilizza DateTime::createFromFormat
.
Parametri:
Format
(obbligatorio) - Questo parametro specifica il formato da utilizzare.Time
(obbligatorio) - Questo parametro rappresenta la stringa di data / ora. Se questo parametro è NULL, utilizzerà la data / ora corrente.Timezone
(opzionale) - Il fuso orario dell’ora. Il valore predefinito è il fuso orario corrente.
Esempio di DateTime::createFromFormat
echo $dateNew = DateTime::createFromFormat('m-d-Y', '03-08-2020')->format('Y/m/d');
//output: 2020/03/08
Esempio di date_create_from_format
echo $dateNew = date_create_from_format("m-d-Y", "03-08-2020")->format("Y-m-d");
//output: 2020/03/08
L’unica differenza tra date_create_from_format
e DateTime::createFromFormat
è che DateTime::createFromFormat
non è disponibile in PHP 5.2 e precedenti.
Articolo correlato - PHP Date
- Aggiungi giorni alla data in PHP
- Calcola la differenza tra due date usando PHP
- Converti DateTime in String in PHP
- Converti un formato di data in un altro in PHP
- Ottieni la data e l'ora correnti in PHP