日付操作は、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フォーマット指定子についてはこちらの記事でも取り扱っています。
今回も、お疲れ様でした。
コメントを残す