【PHP8.x】modifyメソッドの使い方

modifyメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

modifyメソッドは、DateTimeImmutableオブジェクトの日付と時刻を変更し、新しいDateTimeImmutableオブジェクトを返します。このメソッドは、元のDateTimeImmutableオブジェクトを変更せずに、新しいオブジェクトを生成するため、DateTimeImmutableオブジェクトの不変性を保ちます。

modifyメソッドは、日付と時刻の変更を記述した文字列(例えば、"+1 day", "-2 weeks", "next Monday"など)を引数として受け取ります。この文字列は、PHPが解釈できる形式である必要があります。文字列の形式が正しくない場合、例外が発生する可能性があります。

modifyメソッドは、指定された変更を適用した新しいDateTimeImmutableオブジェクトを返します。元のDateTimeImmutableオブジェクトは変更されません。変更に失敗した場合(例えば、無効な日付文字列が渡された場合)、falseを返します。

modifyメソッドは、DateTimeImmutableオブジェクトの日付と時刻を操作するための重要なツールです。DateTimeImmutableオブジェクトの不変性を維持しながら、日付と時刻の計算や調整を行うことができます。例えば、特定の日から1週間後の日付を計算したり、特定の日から数日前の日付を計算したりする際に使用できます。また、"first day of next month" のような自然言語に近い表現も使用できるため、柔軟な日付操作が可能です。

modifyメソッドを使用する際には、日付文字列の形式に注意する必要があります。PHPが解釈できる形式で記述されていることを確認してください。また、無効な日付文字列を渡すと、例外が発生する可能性があるため、事前にバリデーションを行うことを推奨します。

例:

$date = new DateTimeImmutable('2024-01-01');
$newDate = $date->modify('+1 day');
echo $newDate->format('Y-m-d'); // 出力:2024-01-02

上記の例では、2024年1月1日のDateTimeImmutableオブジェクトに対して、modifyメソッドを使用して1日後の日付を計算し、新しいDateTimeImmutableオブジェクトとして取得しています。

構文(syntax)

1DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false

引数(parameters)

string $modifier

  • string $modifier: 日付の変更内容を指定する文字列

戻り値(return)

DateTimeImmutable

DateTimeImmutable オブジェクトの新しいインスタンスを返します。この新しいインスタンスは、指定されたフォーマット文字列に従って元のオブジェクトの日付/時刻が変更されたものです。