English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基礎チュートリアル

PHP 高級チュートリアル

PHP & MySQL

PHP リファレンスマニュアル

PHP date_create_immutable()関数の用法と例

PHP デート&タイム関数マニュアル

date_create_immutable()関数は新しいDateTimeImmutableオブジェクトを返します

定義と用法

date_create_immutable()はDateTimeImmutable::__construct()の別名です。この関数は日付を引数として受け取ります。/時間文字列と時区をパラメータとして(オプション)指定し、DateTimeImmutableオブジェクトを作成します。
DateTimeオブジェクトとは異なり、このオブジェクトはどのような変更も許可しません。変更が発生した場合、新しいオブジェクトを作成し返します。デフォルトでは、この関数は現在の日付を生成します。/時間のオブジェクト

構文

date_create_immutable([$date_time, $timezone]);

パラメータ

順序番号パラメータ及び説明
1

date_time (オプション)

そのためには変更不可のDateTimeオブジェクトを作成する必要がある日付です/サポートされているフォーマットを使用した時間文字列。

2

timezone (オプション)

これは指定された時間の时区を意味します。

返り値

PHP date_create_immutable()関数は作成されたDateTimeImmutableオブジェクトを返します。

PHPバージョン

この関数は最初にPHPバージョン5.5PHP 7.2.0で導入され、すべての上位バージョンで使用できます。

オンライン例

以下の例では、date_create_immutable()関数の使い方-

<?php
   $date_string = "2019-08-15 9:25:45";
   $immutable = date_create_immutable($date_string);   
   print_r($immutable);
?>
テストしてみる‹/›

出力結果

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

オンライン例

以下は時区引数を含む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')); 
?>
テストしてみる‹/›

出力結果

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

オンライン例

以下の例では、変更不可能の日付を作成し、通常の日付オブジェクトに間隔を追加し、結果値を表示しました。変更不可能のDateTimeオブジェクトは変更が発生した場合に新しいオブジェクトを作成し返しますので、変更前後の値が観察できます-

<?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");
?>
テストしてみる‹/›

出力結果

変更不可能の日付: 
元のオブジェクトの値: 1986-09-11
変更後: 1996-09-27
通常の日付: 
元のオブジェクトの値: 1996-09-27
変更後: 1996-09-27