PHP 日付に処理について(date関数とstrtotime関数)

久しぶりにPHPを触っていたら日付の扱い方を忘れていたのでメモ。

date関数

基本的な使い方

date(フォーマット)
date(フォーマット,タイムスタンプ)
フォーマットは下表参照してください。
タイムスタンプはUnixタイムスタンプ(int型)、指定しなければ現在時刻が設定される。
指定したフォーマットの値を返す

フォーマット表

フォーマット文字列 内容
Y 年(4桁表記)
y 年(2桁表記)
m 月(2桁表記)
n 月(先頭にゼロつけない)
d 日(2桁表記)
j 日(先頭にゼロつけない)
H 時間(24時間単位)
h 時間(12時間単位)
i
s

利用例

echo date(‘Y年m月d日 H時i分s秒’).”\n”; //2018年04月26日 16時56分35秒
echo date(‘Y/m/d H:i:s’).”\n”; //2018/04/26 16:57:02
echo date(‘Y/m/d H:i:s’,1522551600).”\n”; //2018/04/01 12:00:00

strtotime関数

基本的な使い方

strtotime(日時)

入力した日時をint型のタイムスタンプに変換して返す
タイムスタンプへ変換するのに失敗した場合はfalseを返す

利用例

echo strtotime(‘20180401123000’); //1522553400
echo strtotime(‘2018/4/1 12:30’); //1522553400

strtotime(日時を表す英語)

現在の日時に入力した日時を表す英語(下表)を加減算したタイムスタンプを返す
タイムスタンプへ変換するのに失敗した場合はfalseを返す

strtotime(日時を表す英語,タイムスタンプ)

第二引数を設定した場合は、第二引数のタイムスタンプから第一引数の日時を加減算したタイムスタンプを返す
タイムスタンプへ変換するのに失敗した場合はfalseを返す

日時を表す英語

日時を表す英語
strtotime(‘n year’);
strtotime(‘n month’);
strtotime(‘n day’);
strtotime(‘n hour’);
strtotime(‘n minute’);
strtotime(‘n second’);

strtotimeを使った日付の加算減算のサンプルプログラム

<?php
	//strtotimeを使った日付の加算減算
	
	//タイムゾーンの設定
	date_default_timezone_set('Asia/Tokyo');
	
	//指定日への加算など
	$hiduke=strtotime("201804011230");
	//設定の時刻
	echo "現在の時刻:",date('Y年m月d日 H時i分s秒',$hiduke)."\n";
	//年の加減算
	echo "   1年後:",date('Y年m月d日 H時i分s秒' , strtotime('+1 year',$hiduke))."\n";
	echo "   5年前:",date('Y年m月d日 H時i分s秒' , strtotime('-5 year',$hiduke))."\n";
	//月の加減算
	echo " 1ヵ月後:",date('Y年m月d日 H時i分s秒' , strtotime('+1 month',$hiduke))."\n";
	echo "15ヵ月前:",date('Y年m月d日 H時i分s秒' , strtotime('-15 month',$hiduke))."\n";
	//日の加減算
	echo "   1日後:",date('Y年m月d日 H時i分s秒' , strtotime('+1 day',$hiduke))."\n";
	echo "   8日前:",date('Y年m月d日 H時i分s秒' , strtotime('-8 day',$hiduke))."\n";
	//時間の加減算
	echo " 1時間後:",date('Y年m月d日 H時i分s秒' , strtotime('+1 hour',$hiduke))."\n";
	echo "13時間前:",date('Y年m月d日 H時i分s秒' , strtotime('-13 hour',$hiduke))."\n";
	//分の加減算
	echo "   1分後:",date('Y年m月d日 H時i分s秒' , strtotime('+1 minute',$hiduke))."\n";
	echo "   7分前:",date('Y年m月d日 H時i分s秒' , strtotime('-7 minute',$hiduke))."\n";
	//秒の加減算
	echo "   1秒後:",date('Y年m月d日 H時i分s秒' , strtotime('+1 second',$hiduke))."\n";
	echo "  50秒前:",date('Y年m月d日 H時i分s秒' , strtotime('-50 second',$hiduke))."\n";

?>

参考にさせて頂いたサイト

・[PHP]date http://php.net/manual/ja/function.date.php
・[PHP]strtotime http://php.net/manual/ja/function.strtotime.php