Fonction PHP date_create_immutable ()

Définition et utilisation

Le date_create_immutable () est un alias de DateTimeImmutable :: __ construct () . Cette fonction accepte une chaîne de date / heure et un fuseau horaire comme paramètres (facultatif) et crée un objet DateTimeImmutable .

Contrairement à l'objet DateTime, cet objet n'autorise aucune modification, il crée un nouvel objet en cas de modifications et le renvoie. Par défaut, cette fonction crée un objet de la date / heure actuelle

Syntaxe

date_create_immutable([$date_time, $timezone]);

Paramètres

Sr. Non Paramètre et description
1

date_time (Optional)

Il s'agit de la chaîne de date / heure (dans les formats pris en charge) pour laquelle vous devez créer un objet DateTime immuable.

2

timezone (Optional)

Cela représente le fuseau horaire de l'heure donnée.

Valeurs de retour

La fonction PHP date_create_immutable () renvoie l'objet DateTimeImmutable créé.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5.5.0 de PHP et fonctionne avec toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation de la fonction date_create_immutable () -

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

Cela produira le résultat suivant -

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

Exemple

Voici un exemple de date_create_immutable () avec le paramètre 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')); 
?>

Cela produira le résultat suivant -

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

Exemple

Dans l'exemple suivant, nous avons créé une date immuable et des objets de date normale leur ont ajouté des intervalles et affiché les valeurs résultantes. Étant donné que l'objet DateTime immuable crée et renvoie un nouvel objet en cas de tentative de modification, vous pouvez observer qu'il varie avant et après le changement

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

Cela produira le résultat suivant -

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