DateTime::modify
date_modify
(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
参考
- strtotime() - 英文形式の日付を Unix タイムスタンプに変換する
- DateTimeImmutable::modify() - タイムスタンプを変更した新しいオブジェクトを作る
- DateTime::add() - 年月日時分秒の値を加えることで、DateTime オブジェクトを変更する
- DateTime::sub() - 年月日時分秒の値を DateTime オブジェクトから引く
- DateTime::setDate() - 日付を設定する
- DateTime::setISODate() - ISO 形式の日付を設定する
- DateTime::setTime() - 時刻を設定する
- DateTime::setTimestamp() - Unix タイムスタンプを用いて日付と時刻を設定する
+add a note
User Contributed Notes
There are no user contributed notes for this page.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google