date_create_immutable()函數(shù)返回新的DateTimeImmutable對象
date_create_immutable()是DateTimeImmutable::__ construct()的別名。 此函數(shù)接受日期/時間字符串和時區(qū)作為參數(shù)(可選),并創(chuàng)建DateTimeImmutable對象。
與DateTime對象不同,此對象不允許任何修改,它會在發(fā)生更改的情況下創(chuàng)建一個新對象并返回它。 默認情況下,此函數(shù)創(chuàng)建當前日期/時間的對象
date_create_immutable([$date_time, $timezone]);
序號 | 參數(shù)及說明 |
---|---|
1 | date_time (可選) 這是您需要為其創(chuàng)建不可變的DateTime對象的日期/時間字符串(采用受支持的格式)。 |
2 | timezone (可選) 這表示給定時間的時區(qū)。 |
PHP date_create_immutable()函數(shù)返回創(chuàng)建的DateTimeImmutable對象。
此函數(shù)最初是在PHP版本5.5.0中引入的,并且可以在所有更高版本中使用。
以下示例演示了date_create_immutable()函數(shù)的用法-
<?php $date_string = "2019-08-15 9:25:45"; $immutable = date_create_immutable($date_string); print_r($immutable); ?>測試看看?/?
輸出結(jié)果
DateTimeImmutable Object ( [date] => 2019-08-15 09:25:45.000000 [timezone_type] => 3 [timezone] => UTC )
以下是帶有時區(qū)參數(shù)的date_create_immutable()的示例-
<?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')); ?>測試看看?/?
輸出結(jié)果
DateTimeImmutable Object ( [date] => 2019-08-15 09:25:45.000000 [timezone_type] => 3 [timezone] => Indian/Mahe ) 2019-08-15 09:25:45
在下面的示例中,我們創(chuàng)建了一個不可變的日期,并且正常日期對象為其添加了間隔,并顯示了結(jié)果值。由于不可變的DateTime對象會在發(fā)生更改的情況下創(chuàng)建并返回一個新對象,因此您可以觀察到它在更改之前和之后都會發(fā)生變化-
<?php print("不可變的日期: "."\n"); $date1 = date_create_immutable('1986-09-11'); $date2 = $date1->add(new DateInterval('P15DP12MP9YT24H')); print("原始對象值: ".$date1->format('Y-m-d')."\n"); print("變更后: ".$date2->format('Y-m-d')."\n"); print("正常日期: "."\n"); $date3 = date_create('1986-09-11'); $date4 = $date3->add(new DateInterval('P15DP12MP9YT24H')); print("原始對象值: ".$date3->format('Y-m-d')."\n"); print("變更后: ".$date4->format('Y-m-d')."\n"); ?>測試看看?/?
輸出結(jié)果
不可變的日期: 原始對象值: 1986-09-11 變更后: 1996-09-27 正常日期: 原始對象值: 1996-09-27 變更后: 1996-09-27