(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::modify -- date_modify — タイムスタンプを変更する
オブジェクト指向型
手続き型
DateTimeImmutable::__construct() 形式で加算あるいは減算することによって DateTime オブジェクトのタイムスタンプを変更します。
object
手続き型のみ: date_create() が返す DateTime オブジェクト。 この関数は、このオブジェクトを変更します。
modifier
日付/時刻 文字列。有効な書式については 日付と時刻の書式 で説明しています。
オブジェクト指向のAPIのみ、 無効な日付/時刻の文字列が渡された場合に DateMalformedStringException がスローされます。
バージョン | 説明 |
---|---|
8.3.0 | 無効な文字列が渡された場合、DateTime::modify() については警告を発生させるのではなく DateMalformedStringException がスローされるようになりました。 date_modify() は変更されていません。 |
例1 DateTime::modify() の例
オブジェクト指向型
<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>
手続き型
<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>
上の例の出力は以下となります。
2006-12-13
例2 月の加減算には注意
<?php
$date = new DateTime('2000-12-31');
$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>
上の例の出力は以下となります。
2001-01-31 2001-03-03
例3 全ての日付と時刻のフォーマットがサポートされています
<?php
$date = new DateTime('2020-12-31');
$date->modify('July 1st, 2023');
echo $date->format('Y-m-d H:i') . "\n";
$date->modify('Monday next week');
echo $date->format('Y-m-d H:i') . "\n";
$date->modify('17:30');
echo $date->format('Y-m-d H:i') . "\n";
?>
上の例の出力は以下となります。
2023-07-01 00:00 2023-07-03 00:00 2023-07-03 17:30