PHPのdate関数を使った加算と減算の実例 | 基本から応用まで

日付操作は、Web開発やアプリケーション開発において不可欠な要素の一つです。特に、日付の加算や減算は、さまざまなタスクでよく使用されます。

期限切れのアイテムの管理、予定されたイベントのトリガー、データの分析など、多くのシナリオで必要になります。

このガイドでは、PHPを使用して日付操作を行う際の基本的な方法から、より高度なテクニックまでを幅広くカバーします。

コードサンプルと具体的なシナリオを通じて、日付の加算と減算に関する理解を深め、実際のプロジェクトで役立つスキルを身につけることができるでしょう。

PHPでdateの加算と減算をするサンプルコード

<?php

var_dump(date('Y-m-d H:i:s'));
// string(19) "2023-09-07 08:32:13"


// 日付操作

var_dump(date('Y-m-d', strtotime('+1 day')));
// string(10) "2023-09-08"
var_dump(date('Y-m-d', strtotime('-7 day')));
// string(10) "2023-08-31"
var_dump(date('Y-m-d', strtotime('1 week')));
// string(10) "2023-09-14"
var_dump(date('Y-m-d', strtotime('-3 month')));
// string(10) "2023-06-07"
var_dump(date('Y-m-d', strtotime('first day of'))); // 月初
// string(10) "2023-09-01"
var_dump(date('Y-m-d', strtotime('last day of'))); // 月末
// string(10) "2023-09-30"
var_dump(date('Y-m-d', strtotime('Monday next week'))); // 次の週の月曜日
// string(10) "2023-09-11"

// 時間操作

var_dump(date('Y-m-d H:i:s', strtotime('today'))); // 00:00:00 に固定
// string(19) "2023-09-07 00:00:00"
var_dump(date('Y-m-d H:i:s', strtotime('14:00')));
// string(19) "2023-09-07 14:00:00"

date関数を使用した加算と減算にはstrototime関数を使用する必要があります。

date関数の実行方法としては以下の指定が可能になっています。

date(string $format, ?int $timestamp = null): string

第1引数にはフォーマットの指定、第2引数にはタイムスタンプの指定が可能になっており、タイムスタンプが渡された場合にはそのタイムスタンプでの値としてフォーマットされます。

https://www.php.net/manual/ja/function.date.php

そのため、必要とする時刻を一度strtotime関数でタイムスタンプに変換したのち、date関数でフォーマットすることで加算と減算に対応することができます。

strtotime関数の使用方法を理解する

PHPでサポートされている日付と時刻はBNFライクな書式に対応しており、自然言語による書式によって実行する事ができます。

対応する書式については公式のPHPマニュアルを参照してください。

https://www.php.net/manual/ja/datetime.formats.php

strtotime関数は対応範囲外の書式が指定された場合には false が返却されるので注意が必要です。

PHPによるdateの加算と減算を行うには、strtotime関数に相対的な日付や時刻を渡す事で実現することができます。

DateTimeクラスでの加算と減算

dateとstrtotime関数と同様に、DateTimeクラスを使用したサンプルコードがこちらになります。

<?php

$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
// 2001-01-31

$date->modify 関数を使用することで、PHPがサポートしている相対的な日付や時刻の指定をすることで加算と減算に対応することができます。

終わりに

以上、PHPによるdateの加算と減算を実行する方法でした。

PHPがサポートしている自然言語で相対的な日付や時刻を指定することで加算と減算が実現できる事がわかりました。

こちらの情報が皆さんのプロジェクトに活用できましたら幸いです。

PHPのdateフォーマット指定子についてはこちらの記事でも取り扱っています。

今回も、お疲れ様でした。