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