この節では、日付を計算する方法を確認しましょう。指定した日時より1ヶ月後などの計算が必要な場合があります。その場合、次の方法で計算することができます。
date関数の第2引数に指定するタイムスタンプで、次のように指定することで計算した結果の日付文字列を取得できます。
例.
‘-3 hour’ //3時間前
‘+3 hour’ //3時間後
‘+3 day’ //3日後
‘+3 month’ //3ヶ月後
‘+3 year’ //3年後
‘2020/05/04 +3 day’ // 2020/05/07
○ ファイル
「DateTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
ファイルの種類 | PHPファイル |
---|---|
ファイル名 | DateCalcTest.php |
○ プログラム
「DateTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
DateCalcTest.php
○ 実行結果
○ 解説
16行目で、date関数の第2引数に2時間後を指定しています。strtotime関数の引数として「+2 hour」とすることで、実行時の時間から2時間後のタイムスタンプが取得できます。それをdate関数に渡すことで、2時間後の日時が取得できます。
27行目では、strtotime関数の引数として「ターゲット日時 +1 year」という文字列を渡しています。これにより、指定した日時より1年後のタイムスタンプが取得され、それをdate関数に渡すことで指定日時より1年後の日時が取得できます。
32行目では、指定日時より5か月前の日時を取得しています。
DateTimeクラスの「modify」メソッドの引数に、加算もしくは減算したい年、月、日、時間、分などを指定して、計算したDateTimeオブジェクトを返します。
クラス名 | DateTime |
---|---|
メソッド名 | modify |
パラメーターリスト | |
パラメター名 | 説明 |
string $modify | 日付・時刻を表す文字列 |
返り値 | |
DateTime | DateTimeオブジェクト、失敗した場合はFALSE |
midifyメソッドに引数に、date関数を使った計算でみたように「+1 year」のように指定します。
○ ファイル
「DateCalcTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
ファイルの種類 | PHPファイル |
---|---|
ファイル名 | DateTimeCalcTest.php |
○ プログラム
次のようにプログラムを記述してください。
DateTimeCalcTest.php
○ 実行結果
○ 解説
10行目で、現在の日時を表すDateTimeオブジェクトを生成しています。12行目では画面に表示させるために「format」メソッドを使って日付を整形し、表示しています。
17行目では、modifyメソッドの引数に「+2 hour」という文字列を渡すことで、現在の日時から2時間後のDateTimeオブジェクトが返ってきます。返ってきたDateTimeオブジェクトのformatメソッドを呼び出して画面に表示しています。
21行目では、日時を指定してDateTimeオブジェクトを生成しています。28、33行目でそれぞれ1年後、5か月前の設定をしたDateTimeオブジェクトを取得し、表示しています。