Converti la stringa in data e data-ora in PHP

Ralfh Bryan Perez 12 aprile 2021
  1. Combinazione di strtotime() e data
  2. Usa DateTime::createFromFormat o date_create_from_format
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

Articolo correlato - PHP String