PHPの「mb_detect_encoding」を使って読み込みファイルのエンコード処理
外部ファイル(CSVファイル等)を読み込んでサイト内に表示する際に、保存時の文字コードが…
新着情報や購入情報などデータベースへ日付を登録する際に使用する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、平年: 0 | 0 |
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 |
i | 分 | 02 |
s | 秒 | 02 |
集計や利用期限など、現時刻(指定時刻)から自動で該当する日付を取得する必要がある場合の計算方法
//現時刻から一日後
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>');
}