Funzione PHP date_create_immutable ()

Definizione e utilizzo

Il date_create_immutable () è un alias di DateTimeImmutable :: __ construct () . Questa funzione accetta una stringa di data / ora e un fuso orario come parametri (opzionale) e crea un oggetto DateTimeImmutable .

A differenza dell'oggetto DateTime, questo oggetto non consente alcuna modifica, crea un nuovo oggetto in caso di modifiche e lo restituisce. Per impostazione predefinita, questa funzione crea un oggetto della data / ora corrente

Sintassi

date_create_immutable([$date_time, $timezone]);

Parametri

Suor n Parametro e descrizione
1

date_time (Optional)

Questa è la stringa data / ora (nei formati supportati) per la quale è necessario creare un oggetto DateTime non modificabile.

2

timezone (Optional)

Questo rappresenta il fuso orario del tempo specificato.

Valori restituiti

La funzione PHP date_create_immutable () restituisce l'oggetto DateTimeImmutable creato.

Versione PHP

Questa funzione è stata introdotta per la prima volta nella versione PHP 5.5.0 e funziona con tutte le versioni successive.

Esempio

L'esempio seguente mostra l'utilizzo della funzione date_create_immutable () -

<?php
   $date_string = "2019-08-15 9:25:45";
   $immutable = date_create_immutable($date_string);   
   print_r($immutable);
?>

Questo produrrà il seguente risultato:

DateTimeImmutable Object
(
    [date] => 2019-08-15 09:25:45.000000
    [timezone_type] => 3
    [timezone] => UTC
)

Esempio

Di seguito è riportato un esempio di date_create_immutable () con il parametro timezone -

<?php
   $date_string = "2019-08-15 9:25:45";
   $tz = new DateTimeZone('Indian/Mahe');
   $immutable = date_create_immutable($date_string, $tz);   
   print_r($immutable);   
   print( date_format($immutable,'Y-m-d H:i:s')); 
?>

Questo produrrà il seguente risultato:

DateTimeImmutable Object
(
    [date] => 2019-08-15 09:25:45.000000
    [timezone_type] => 3
    [timezone] => Indian/Mahe
)
2019-08-15 09:25:45

Esempio

Nell'esempio seguente abbiamo creato una data immutabile e gli oggetti data normali hanno aggiunto intervalli e visualizzato i valori risultanti. Poiché l'oggetto DateTime immutabile crea e restituisce un nuovo oggetto in caso di tentativo di modifica, puoi osservare che varia prima e dopo il cambiamento -

<?php
   print("Immutable Date: "."\n");
   $date1 = date_create_immutable('1986-09-11');
   $date2 = $date1->add(new DateInterval('P15DP12MP9YT24H'));
   print("Original Object Value: ".$date1->format('Y-m-d')."\n");
   print("After Change: ".$date2->format('Y-m-d')."\n");
   print("Normal Date: "."\n");
   $date3 = date_create('1986-09-11');
   $date4 = $date3->add(new DateInterval('P15DP12MP9YT24H'));
   print("Original Object Value: ".$date3->format('Y-m-d')."\n");
   print("After Change: ".$date4->format('Y-m-d')."\n");
?>

Questo produrrà il seguente risultato:

Immutable Date:
Original Object Value: 1986-09-11
After Change: 1996-09-27
Normal Date:
Original Object Value: 1996-09-27
After Change: 1996-09-27