「PHP」参考情報 第7回 PHPの日付の計算(加算・減算)として、「(1)PHPの日付計算(加算・減算)のやり方」「(2)PHPの日付計算における注意点 先月翌月計算」について紹介。

「PHP」参考情報 第7回 PHPの日付の計算(加算・減算)

「PHP」参考情報 第7回 PHPの日付の計算(加算・減算)として、「(1)PHPの日付計算(加算・減算)のやり方」「(2)PHPの日付計算における注意点 先月翌月計算」について紹介。

■関連する比較ページ

(1)PHPの日付計算(加算・減算)のやり方

■日付計算例(n日後)

//基準日「2016-02-15」を作成して、3日後の日付を求めます
$date = new DateTime("2016-02-15");
$date->modify('+3 days');
//→2016-02-18
echo $date->format('Y-m-d');

■日付計算例(n日前)

//基準日「2016-02-15」を作成して、10日前の日付を求めます

$date = new DateTime("2016-02-15");
$date->modify('-10 days');
//→2016-02-05
echo $date->format('Y-m-d');

上記のようにして、modifyを使用すれば、簡単に、n日後、n日前の日付を求めることができます。

modifyで、日付の計算として使えるものは、以下のものがあります。
年 : year
月 : month
週 : week
日 : day

■日付表示フォーマット

概要

サンプルコードでは、「echo $date->format('Y-m-d')」のように日付を出力しましたが、「Y-m-d」の部分を変更すると、いろいろな日付フォーマットで出力できます。例えば、「2016年(西暦4桁表示)」or「16年(西暦2桁表示)」、「2月(ゼロ埋めなし)」or「02月(ゼロ埋めあり)」など。

参考サイト

こちらのサイトは、日付フォーマットのリファレンスとして参照できます。

→そふぃのPHP入門 日付・時刻関数 date

(2)PHPの日付計算における注意点 先月翌月計算

■概要

日付計算において注意が必要なポイントは、先月計算・翌月計算です。

//翌月計算例 問題発生パターン
//基準日(2016-03-31)を作成して、1ヶ月後の日付を求めます
$date = new DateTime("2016-03-31");
$date->modify('+1 month');
//→2016-05-01
echo $date->format('Y-m-d');

「2016-03-31」の1ヶ月後が、「2016-05-01」と計算されてしまいます。これは、「2016-03-31」の1ヶ月後が「2016-04-31」と計算され、4月は30日までしか存在しないため、+1して「2016-05-01」になってしまっているという理屈です。

■参考サイト

こちらのサイトでは、この問題についての解説および対策法を、丁寧に解説しています。

→bushimichiの日記 PHPで、先月、翌月などを扱うときの注意

PHP最新TOPICS

【講演資料を公開】3/22「スマホアプリの開発プロセスについて~実は重要なサーバーサイドの開発と、Laravel(PHP) と Rails(Ruby)~」(2018年04月27日 10:04)

2018年03月22日(木)17:00~18:30 AP品川 9階 にて「スマホアプリの開発プロセスについて~実は重要なサーバーサイドの開発と、Laravel(PHP) と Rails(Ruby)~」と題したセミナーを開催しました。 当日は、会場の様子をWebで中継し 遠隔地等ご来場出来ない方にもご参加頂きました。お陰様で、盛況のうちに終了することができました。ありがとうございました。 講...

イベント情報

セミナー講演資料

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

ローコード/ノーコードのツール比較と内製化 ~ユーザー企業は、ノーコード/ローコードで内製化できるのか?~

SIer企業の「リスキリング」実現ロードマップを解説 〜開発現場で必要なスキルを実践しながら学べる学習プラットフォーム〜

CI/CDが開発ガバナンスの弱体化を招く?回避する方法とは ~複数ツールの組み合わせで生じる問題を、統合プラットフォーム「GitLab」で解決~

  • PHPサイド(PHP)@スタジオ・アルカナ
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter