BETA

PHPでの日付の扱い方

投稿日:2018-12-02
最終更新:2018-12-26

よく忘れてしまうので、自分用の覚書メモです。

date関数

date(フォーマット)  
date(フォーマット, タイムスタンプ)  

フォーマットで利用する文字列

  • Y:年(4桁表記)
    • y:年(2桁表記)
  • m:月(2桁表記)
    • n:月(先頭にゼロつけない)
  • d:日(2桁表記)
  • H:時間(24時間単位)
    • h:時間(12時間単位)
  • i:分
  • s:秒
  • t:指定した月の日数(2831)
  • w:曜日番号(0[日曜]から6[土曜]の値)

曜日の指定

$week_name = ['日', '月', '火', '水', '木', '金', '土'];  
echo ($week_name[date('w')]);  //本日の曜日  

strtotime関数

date('Y/m/d H:i:s', strtotime('-1 day')) //昨日  

指定できる英文

  • 今現在:strtotime('now')
  • 本日:strtotime('today')
  • 昨日:strtotime('yesterday')
  • 明日:strtotime('tomorrow')
  • 日付指定:strtotime('1 January 2017')
  • 日週月年の指定:strtotime('+1 day +1 week +1 month +1 year')
  • 翌週木曜日:strtotime('next Thursday')
  • 先週木曜日:strtotime('last Thursday')

複合

何日前、何日後の出し方

$targetDatatime = strtotime('2018-12-02 00:00:00');  

// 1時間前  
echo date('Y-m-d H:i:s', strtotime('-1 hour', $targetDatatime));  

よくタイムスタンプ部分がごちゃごちゃになってしまうので注意(自戒)

月末の出し方

$date = date('Y-m-01');  
echo date('Y-m-d', strtotime('+1 month -1 day', strtotime($date)));  

その月の月初を指定し、そこから1ヶ月マイナス1日で月末を計算。

おまけ(SQL)

select  
    date_format(created, '%Y-%m-%d') as 年月日,  
    count(*) as カウント数  
from   
    テーブル名  
group by  
    date_format(created, '%Y-%m-%d');  

これで日付ごとにカウント集計ができる。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@tanakashiの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!