226 of 410 menu

クラス DateTimeImmutable

クラス DateTimeImmutable は、DateTime の不変なバージョンです。変更を行うたびに新しいオブジェクトを生成するため、より予測可能で安全に作業できます。

現在の日時

現在の日時を持つ DateTimeImmutable オブジェクトを作成してみましょう:

<?php $date = new DateTimeImmutable(); ?>

特定の日付

指定された日付で DateTimeImmutable オブジェクトを作成してみましょう:

<?php $date = new DateTimeImmutable('2025-12-31'); ?>

特定の日付と時刻

指定された日付と時刻で DateTimeImmutable オブジェクトを作成してみましょう:

<?php $date = new DateTimeImmutable('2025-12-31 12:59:59'); ?>

出力のフォーマット

作成した日付は、format メソッドを使用して指定されたフォーマットで出力できます。現在の日時に対してこれを実行してみましょう:

<?php $date = new DateTimeImmutable(); echo $date->format('Y-m-d H:i:s'); ?>

結果(実行タイミングによって変化します):

'2025-11-15 14:25:00'

指定日付のフォーマット

指定された日付をフォーマットしてみましょう:

<?php $date = new DateTimeImmutable('2025-12-31'); echo $date->format('d.m.Y'); ?>

コード実行結果:

'31.12.2025'

間隔の追加

日付への間隔の追加は、add メソッドを通じて行われます:

<?php $date = new DateTimeImmutable('2025-05-15'); $interval = new DateInterval('P10D'); // 10日間 $newDate = $date->add($interval); echo $newDate->format('Y-m-d'); ?>

コード実行結果:

'2025-05-25'

間隔の減算

日付からの間隔の減算は、sub メソッドを通じて行われます:

<?php $date = new DateTimeImmutable('2025-05-15'); $interval = new DateInterval('P1M2D'); // 1ヶ月と2日間 $newDate = $date->sub($interval); echo $newDate->format('Y-m-d'); ?>

コード実行結果:

'2025-04-13'

新しい日付の設定

DateTimeImmutable オブジェクトに新しい日付を設定できます。これは setDate メソッドを使用して行います:

<?php $date = new DateTimeImmutable(); $newDate = $date->setDate(2024, 12, 31); echo $newDate->format('Y-m-d'); ?>

コード実行結果:

'2024-12-31'

時刻の設定

DateTimeImmutable オブジェクトに新しい時刻を設定できます。これは setTime メソッドを使用して行います:

<?php $date = new DateTimeImmutable(); $newDate = $date->setTime(15, 30, 0); echo $newDate->format('H:i:s'); ?>

コード実行結果:

'15:30:00'

日付の比較

日付を持つオブジェクトを比較できます:

<?php $date1 = new DateTimeImmutable('2025-01-01'); $date2 = new DateTimeImmutable('2025-02-01'); if ($date1 < $date2) { echo '+++'; } else { echo '---'; } ?>

タイムゾーンを指定したオブジェクトの作成

DateTimeImmutable オブジェクトを作成する際に、タイムゾーンを指定できます:

<?php $timeZone = new DateTimeZone('Europe/Moscow'); $date = new DateTimeImmutable('2025-12-31 23:59:59', $timeZone); echo $date->format('Y-m-d H:i:s e'); ?>

コード実行結果:

'2025-12-31 23:59:59 Europe/Moscow'

関連項目

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否