phpで日付の加算を行う方法!



phpで日付の加算を行う方法!

phpでは日付に対しての演算(加算や減算、妥当性のチェック等)を行うことができます。また、その方法はいくつか用意されており、今回はその方法をサンプルソースを交え、わかりやすく解説していきます。

目次
  1. phpで日付の加算をする
  2. phpで日付の減算をする
  3. DateTimeクラス
  4. まとめ

phpで日付に対する処理を行うには、date()関数をまずは知らなければなりません。

date()関数に関してはphpで現在日時を取得する方法!を御覧ください。

phpで日付の加算をする

phpでは下記のようにstrtotime()関数を利用することで、日付文字列に対して、加算を行うことができます。

echo date("Y年m月d日", strtotime("1 day"));
echo date("Y年m月d日", strtotime("1 month"));
echo date("Y年m月d日", strtotime("1 year"));
echo date("Y年m月d日", strtotime("1 week"));

結果

"2017年08月22日"
"2017年09月21日"
"2018年08月21日"
"2017年08月28日"

phpで日付の減算をする

減算も同じように、strtotime()関数を使用することで実現できます。

echo date("Y年m月d日", strtotime("-1 day"));
echo date("Y年m月d日", strtotime("-1 month"));
echo date("Y年m月d日", strtotime("-1 year"));
echo date("Y年m月d日", strtotime("-1 week"));

結果

"2017年08月20日"
"2017年07月21日"
"2016年08月21日"
"2017年08月14日"

DateTimeクラス

こちらの記事でも紹介したように、DateTimeクラスを使用することで、日付への足し算や引き算を行うことができます。phpで現在日時を取得する方法!

$date = new DateTime('2017-08-21 16:44:44');
echo $date->format('Y年m月d日 H時');
$date->modify('+6 hours');
echo $date->format('Y年m月d日 H時');
$date->modify('+1 weeks');
echo $date->format('Y年m月d日 H時');
$date->modify('+1 months');
echo $date->format('Y年m月d日 H時');
$date->modify('+1 days');
echo $date->format('Y年m月d日 H時');

結果

"2017年08月21日 16時"
"2017年08月21日 22時"
"2017年08月28日 22時"
"2017年09月28日 22時"
"2017年09月29日 22時"

まとめ

いかがだったでしょうか。phpで日付に対する加算や減算を行う方法について解説しました。 date()関数やDateTimeクラスを使用する方法がありますが、DateTimeクラスを利用するほうが細かな処理を行うことができる印象です。処理の内容によって使い分けていきましょう。

ベンジャミン吉澤
この記事を書いた人
ベンジャミン吉澤
\無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp