ホーム > PHPサンプル > 日付系 > PHP date m「月」を取得<現在/過去/未来>
PHPサンプル

UPDATE:2020年07月07日

PHP date m「月」を取得<現在/過去/未来>

PHP date m「月」を取得<現在/過去/未来> | wepicks!
PHP4 PHP5 PHP7

date('m')/date('m', タイムスタンプ) で 月 を取得する

date('m') は、月を表示させます。数字で月を表し先頭に 0 を付けます。01 ~ 12 となります。

echo date('m'); echo date('m', UNIXタイムスタンプ);
date()関数 は、指定した日付や時刻のフォーマット文字列から、現在や任意の日付の時刻の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列'); 」。オプションでUNIXタイムスタンプを指定すると、指定したタイムスタンプに合わせた日時の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列', UNIXタイムスタンプ); 」。タイムスタンプを省略すると現在の日時となります。
date() が理解できる日付/時刻フォーマット文字列


date('m')で現在の 月 を取得

取得内容フォーマット文字説明
F月 フルスペルの文字January~December
m月 数字。先頭にゼロをつける01~12
M月 3 文字形式Jan~Dec
n月 数字。先頭にゼロをつけない1~12
t月 指定した月の日数28~31
echo date('F');//May
echo date('m');//05
echo date('M');//May
echo date('n');//5
echo date('t');//31

date('m') 現在の 月

実行日時が 2019-05-27 の場合、現在の月 を取得する。

結果は

・F 月。フルスペルの文字。(January~December):May
・m 月。数字。先頭にゼロをつける。(01~12):05
・M 月。3 文字形式(Jan~Dec):May
・n 月。数字。先頭にゼロをつけない。(1~12):5
・t 指定した月の日数。(28~31):31

となります。

すべての月の表示内容です。各月を先頭に 0 を付けない数字で表します。

01
02
03
04
06
07
08
09
10
11
12

date('m', タイムスタンプ) で任意の日付の 月 を取得

date() + strtotime() で任意の日付の 月

date()関数strtotime()関数 を組み合わせることで、任意の日付を取得できます。date() にUNIXタイムスタンプを指定すると、タイムスタンプの日時に合わせた日付や時刻を返します。

タイムスタンプは、strtotime() で取得できます。strtotime()関数 は、「英文形式で指定された日付や時刻のフォーマット文字列」、または、「日付/時刻のフォーマット文字列」を読み込み、結果をUNIXタイムスタンプの数値として返します。「日付/時刻のフォーマット文字列」と「英文形式のフォーマット文字列」を組み合わせた書式も読み込めます。
UNIXタイムスタンプ = strtotime('日付/時刻フォーマット文字列');
UNIXタイムスタンプ = strtotime('英文形式の日付/時刻フォーマット文字列');

任意の日付(指定日)が2020/05/01 の場合、指定日の月 を取得する。

結果は

05

となります。

strtotime() に指定する最も一般的な日時の書式は strtotime('2019-01-02 03:04:05'); というような形です。例では「2020-05-01」形式の日付フォーマットですが、その他にも様々なフォーマットがあります。興味のある方は以下のページを参照下さい。
strtotime() が理解できる日付/時刻のフォーマット文字列
strtotime() が理解できる英文形式フォーマット文字列

日付/時刻のフォーマット文字の例

  • 「02-01-2020(日-月-年)」
  • 「02.01.2020(日.月.年)」
  • 「01/02/20(月/日/年)」
  • 「20-01-02(年-月-日)」
  • 「01/02/2020(月/日/年)」
  • 「Jan. 02, 2020(3文字英語月. 日, 年)」
  • 「02 Jan 2020(日 3文字英語月 年)」

date() + mktime() で任意の日付の 月

date()関数mktime()関数 を組み合わせることでも、任意の日付を取得できます。

mktime()関数 は、指定した日時のUNIXタイムスタンプの数値を返します。時、分、秒、月、日、年 と日時の内容を指定します。mktime(時, 分, 秒, 月, 日, 年);

任意の日付(指定日)が 2020/05/01 の場合、指定日の月 を取得する。

結果は

May

となります。

date('m') で現在から 未来/過去 の 月 を取得

date() + strtotime()で取得

現在から未来の 月

実行日時が 2019/05/15 の場合、現在から 1カ月後の月 を取得する。

結果は

06

となります。

現在から過去の 月

実行日時が 2019/05/15 の場合、現在から 1カ月前の月 を取得する。

結果は

04

となります。

例では「+1 month」「-1 month」という書式の英文形式フォーマットですが、strtotime()は以下のような英文形式フォーマットも扱えます。

  • 「now(今)」
  • 「today(本日)」
  • 「tommorw(明日)」
  • 「yesterday(昨日)」
  • 「+1 day(1日後 -符号もOK)」
  • 「+1 week(1週間後 -符号もOK)」
  • 「+1 month(1カ月後 -符号もOK)」
  • 「+1 year(1年後 -符号もOK)」
  • 「+1 seconds(1秒後 -符号もOK)」
  • 「+1 min(1分後 -符号もOK)」
  • 「+1 hours(1時間後 -符号もOK)」

さらに詳細を知りたい方
strtotime() が理解できる英文形式フォーマット文字列

date() + mktime()で取得

現在から未来の 月

実行日時が 2019/05/15 の場合、現在から 1カ月後の月 を取得する。

結果は

06

となります。

現在から過去の 月

実行日時が 2019/05/15 の場合、現在から 1カ月前の月 を取得する。

結果は

04

となります。

date('m', タイムスタンプ) で任意の日付から 未来/過去 の 月 を取得

date() + strtotime()で取得

日付/時刻のフォーマットと英文形式のフォーマットを組み合わせて、任意の日付から未来や過去の日付を取得できます。

任意の日付から未来の 月

任意の日付(指定日)が 2018/05/01 の場合、指定日から 1カ月後の月 を取得する。

結果は

06

となります。

任意の日付から過去の 月

任意の日付(指定日)が 2018/05/01 の場合、指定日から 1カ月前の月 を取得する。

結果は

04

となります。

例では「2018-05-01」形式の日付フォーマットですが、strtotime()は以下のような日付フォーマットも扱えます。

  • 「02-01-2020(日-月-年)」
  • 「02.01.2020(日.月.年)」
  • 「01/02/20(月/日/年)」
  • 「20-01-02(年-月-日)」
  • 「01/02/2020(月/日/年)」
  • 「Jan. 02, 2020(3文字英語月. 日, 年)」
  • 「02 Jan 2020(日 3文字英語月 年)」

さらに詳細を知りたい方
strtotime() が理解できる日付/時刻のフォーマット文字列

date() + mktime()で取得

任意の日付から未来の 月

任意の日付(指定日)が 2018/05/01 の場合、指定日から 1カ月後の月 を取得する。

結果は

06

となります。

任意の日付から過去の 月

任意の日付(指定日)が 2018/05/01 の場合、指定日から 1カ月前の月 を取得する。

結果は

04

となります。

使用する関数とタイムゾーン

タイムゾーンの指定
php.ini に記述する場合
date.timezone = Asia/Tokyo
スクリプトに記述する場合
<?php date_default_timezone_set ('Asia/Tokyo'); ?>
※日本時間に合わせます。タイムゾーンに誤りがあると日付系の関数やクラスでエラーが起こる場合があります。
使用する関数

書式 date()
日時の文字列 = date('日付/時刻フォーマット文字列' [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日時となる)
//返り値は文字列(string)
date() が理解できる日付/時刻フォーマット文字列

書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime('英文形式 OR 日付/時刻 フォーマット文字列');
//返り値は数値(int)、失敗時は FALSE を返す
strtotime() が理解できる英文形式フォーマット文字列
strtotime() が理解できる日付/時刻のフォーマット文字列

書式 mktime()
指定日時のUNIXタイムスタンプ = mktime(時, 分, 秒, 月, 日, 年);
//返り値は数値(int)、失敗時は FALSE を返す

※UNIXタイムスタンプは、1970年1月1日00時00分00秒UTC(協定世界時と一致する標準時)らの経過秒数です。例えば2019年5月15日1時34分25秒のUNIXタイムスタンプは 1557851665 となります。

タグ(=記事関連ワード)

タグ: ,

日付

投稿日:2019年6月19日
最終更新日:2020年07月07日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpsample-date-date_m/trackback/

page top