PG WORKS

PHPやLinuxサーバなどのノウハウや、便利なツールを紹介していきます。

【PHP】strtotimeを使用した日付の加算減算方法

日付計算をするときに使用する「strtotime」を紹介します。

strtotimeを使ったサンプル

<?php
// 昨日/明日
strtotime("-1 day");
strtotime("+1 day");

// 一週間前/一週間後
strtotime("-1 week");
strtotime("+1 week");

// 一ヶ月前/一ヶ月後
strtotime("-1 month");
strtotime("+1 month");

// 一年前/一年後
strtotime("-1 year");
strtotime("+1 year");
?>

そのまま、出力すると「UNIX TIMESTAMP」形式の数値が表示されますので、「date」関数を使って日付に変換していきます。

date関数とstrtotimeを合わせて、日付を取得するサンプル

<?php
// 昨日/明日
date("Y-m-d", strtotime("-1 day"));
date("Y-m-d", strtotime("+1 day"));

// 一週間前/一週間後
date("Y-m-d", strtotime("-1 week"));
date("Y-m-d", strtotime("+1 week"));

// 一ヶ月前/一ヶ月後
date("Y-m-d", strtotime("-1 month"));
date("Y-m-d", strtotime("+1 month"));

// 一年前/一年後
date("Y-m-d", strtotime("-1 year"));
date("Y-m-d", strtotime("+1 year"));
?>

月単位で計算をする際には、下記のコードで処理する方が良さそうです。

一ヶ月前後を取得する際には下記のコード

<?php
// 一ヶ月前/一ヶ月後
date("Y-m-01", strtotime("-1 month"));
date("Y-m-01", strtotime("+1 month"));
?>

月末を取得するには、下記ので取得可能です。

月末を取得するサンプル

<?php
// 一ヶ月前の月末/一ヶ月後の月末
echo date('Y-m-t', strtotime(date('Y-m-01').'-1 month'));
echo date('Y-m-t', strtotime(date('Y-m-01').'+1 month'));

//当月の月末
echo date('Y-m-t');
?>

以上が個人的にもよく使う、「strtotime」関数の使用一覧となります。
他にもいろんな使い方ができますので、オススメな使い方などあれば、コメント欄に記述して頂けると幸いです。

2016年3月2日追記

strtotimeのように日付の加算減算ができる、Carbonの記事をアップしました。
zen6a.hateblo.jp