小金井にあるWEB制作会社の備忘録

MEMORANDUM

PHPの「date」関数で日付(現時刻と指定日)を取得

新着情報や購入情報などデータベースへ日付を登録する際に使用するdate関数の使い方をメモ。
指定日や現時刻から1日後(1月後)の時刻も取得可能

//現時刻を取得
date_default_timezone_set('Asia/Tokyo');
date('Y/m/d H:i:s');

取得時間は使用しているサーバー環境での時間で計算される。
日本時間(東京)にする場合は「date_default_timezone_set(‘Asia/Tokyo’)」を使用する前に記載する。

フォーマット一覧

date(‘フォーマット’)の「フォーマット」の部分を取得したい値に合わせて変更。
「/」と書かれている部分は自由に変更が可能

date('Y/m/d H:i:s'); // 2020/01/04 09:44:05
date('Y年m月d日 H時i分s秒'); //2020年01月04日 09時44分05秒
date('Y-m-d H時i分s秒'); //2020-01-04 09時44分05秒

//指定日のフォーマットを変える
$date = '2020-01-04 09:44:05';
date('Y年m月d日', strtotime($date));

取得できる内容は下記参照

フォーマット内容出力結果(例)
Y西暦(4桁)2020
y西暦(2桁)20
lうるう年: 1、平年: 00
m月(0埋め) 01
n月(0埋め無し) 8
M月 英語表記 August
F月 英語表記(略) Aug
d日付(0埋め) 04
j日付(0埋め無し) 4
l曜日 英語表記 Monday
D曜日 英語表記(略)Mon
w曜日 (日曜: 0 → 土: 6) 6
H時刻 24時間表記 (0埋め) 09
G時刻 24時間表記 (0埋め無し) 9
h時刻 12時間表記 (0埋め) 09
g時刻 12時間表記 (0埋め無し)9
i02
s02

日付を加算・減算する場合の方法

集計や利用期限など、現時刻(指定時刻)から自動で該当する日付を取得する必要がある場合の計算方法

//現時刻から一日後
date('Y年m月d日', strtotime('+1 day'));

//現時刻から一月後
date('Y年m月d日', strtotime('+1 month'));

//現時刻から一年後
date('Y年m月d日', strtotime('+1 year'));

//現時刻から一週間後
date('Y年m月d日', strtotime('+1 week'));

//現時刻から一日前
date('Y年m月d日', strtotime('-1 day'));

//現時刻から一月前
date('Y年m月d日', strtotime('-1 month'));

//現時刻から一年前
date('Y年m月d日', strtotime('-1 year'));

//現時刻から一週間前
date('Y年m月d日', strtotime('-1 week'));

//当月の月末を取得
date('Y-m-t'); // 2014-01-31
または
date('Y-m-d', mktime(0, 0, 0, date('m') + 1, 0, date('Y')));

//先月の末日を取得する
date('Y-m-t', strtotime(date('Y-m-01').' -1 month'));

//指定日の一月後
$setdate = date('2020-01-04'); //2020年1月4日を指定
date('Y-m-d H:i:s', strtotime($setdate.' +1 month'));

[応用編]簡易カレンダー

//現在の年月を取得
$year = date('Y');
$month = date('m');
$last_day = date('j', mktime(0, 0, 0, $month + 1, 0, $year));

//末日までループ
for ($day = 1; $day < $last_day + 1; $day++){
	echo('<div>'.$year.'年'.$month.'月'.$day.'日</div>');
}