• PHP Video Tutorials

PHP date_create_immutable() Function


Advertisements

Definition and Usage

The date_create_immutable() is an alias of DateTimeImmutable::__construct(). This function accepts a date/time string and a time zone as parameters (optional) an creates a DateTimeImmutable object.

Unlike DateTime object, this object does not allows any modifications, it creates a new object in case of changes and returns it. By default, this function creates an object of the current date/time

Syntax

date_create_immutable([$date_time, $timezone]);

Parameters

Sr.No Parameter & Description
1

date_time (Optional)

This is the date/time string (in supported formats) for which you need to create an immutable DateTime object.

2

timezone (Optional)

This represents the timezone of the given time.

Return Values

PHP date_create_immutable() function returns the created DateTimeImmutable object.

PHP Version

This function was first introduced in PHP Version 5.5.0 and, works with all the later versions.

Example

Following example demonstrates the usage of the date_create_immutable() function −

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

This will produce following result −

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

Example

Following is an example of date_create_immutable() with timezone parameter −

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

This will produce following result −

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

Example

In the following example we have created a immutable date and normal date objects added intervals to them and displayed the resultant values. Since immutable DateTime object creates and returns a new object in case of an attemt to change, you cans observe that its vary before and after change −

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

This will produce following result −

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
php_function_reference.htm
Advertisements