Learning site for website creation

date
最終更新日から1年以上経過しています

指定日時の文字列を取得

  • 投稿日:2014年09月20日

現在日時から1日後や1日前の日時を取得

//現在日時が2014年01月01日 00時00分00秒の場合
//明日 2014年01月02日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 day'));
//10日後 2014年01月11日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('10 day'));

//昨日 2013年12月31日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-1 day'));
//10日前 2013年12月22日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-10 day'));

現在日時から1週間後や1週間前の日時を取得

//現在日時が2014年01月01日 00時00分00秒の場合
//1週間後 2014年01月08日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 week'));
//1週間前 2013年12月25日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-1 week'));

//1ヶ月後 2014年02月01日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 month'));
//1ヶ月前 2013年12月01日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-1 month'));

現在日時から1年後や1年前の日時を取得

//現在日時が2014年01月01日 00時00分00秒の場合
//1年後 2015年01月01日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 year'));
//1年前 2013年01月01日 00時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-1 year'));

現在日時から時間を変更して日時を取得

//現在日時が2014年01月01日 00時00分00秒の場合
//1時間後 2014年01月01日 01時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 hour'));
//30分後 2014年01月01日 00時30分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('30 min'));
//30秒後 2014年01月01日 00時00分30秒
echo date('Y年m月d日 H時i分s秒', strtotime('30 sec'));
//1時間前 2013年12月31日 23時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-1 hour'));
//30分前 2013年12月31日 23時30分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('-30 min'));
//30秒前 2013年12月31日 23時59分30秒
echo date('Y年m月d日 H時i分s秒', strtotime('-30 sec'));

組み合わせて日時を取得

//現在日時が2014年01月01日 00時00分00秒の場合
//現在日時の1か月と1日と1時間後 2014年02月02日 01時00分00秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 month 1 day 1 hour'));

変数日後や変数日前の日時を取得

//現在日時が2014年01月01日 00時00分00秒の場合
//$num日後 2014年01月04日 00時00分00秒
$num = 3;
echo date('Y年m月d日 H時i分s秒', strtotime($num . ' day'));

//$num日前 2013年12月29日 00時00分00秒
$num = 3;
echo date('Y年m月d日 H時i分s秒', strtotime(-$num . ' day'));

指定日の1ヶ月後の日時を取得

//指定日の1ヶ月後:2014年09月1日の0時0分0秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 month 2014-08-01'));
//指定日の1ヶ月後にならない:2014年10月1日の0時0分0秒になる(9月31日はないので・・・)
echo date('Y年m月d日 H時i分s秒', strtotime('1 month 2014-08-31'));
//指定日の1ヶ月後:2014年09月1日の0時0分0秒
echo date('Y年m月d日 H時i分s秒', strtotime('1 month 2014-08'));

//指定日の月初日:2014年09月01日00時00分00秒。
echo date('Y年m月d日 H時i分s秒', strtotime('first day of 2014-09-21'));
//指定日の月末日:2014年09月30日00時00分00秒。
echo date('Y年m月d日 H時i分s秒', strtotime('last day of 2014-09-21'));
//翌月の月初日
echo date('Y年m月d日 H時i分s秒', strtotime('first day of 1 month'));
//指定日翌月の月初日:2014年09月01日00時00分00秒。
echo date('Y年m月d日 H時i分s秒', strtotime('first day of 1 month 2014-8-31'));

DATETIME型の文字列を使って指定日の日時を取得

データベースのDATETIME型の値をフォーマットされた日時に変換するのに便利

//フォーマットされた日時に変換:2014年09月21日 22時22分22秒
echo date('Y年m月d日 H時i分s秒', strtotime('2014-09-21 22:22:22'));