ベンチャー営業マンの米国株投資

UCLA卒の筆者が主に米国の株投資に関して投稿していきます。 40歳までに(現在28歳)アーリーリタイアを目指して、仕事に投資に没頭していきます

DatePeriodクラスを使ってカレンダーに必要な値を取得

DatePeriodクラスを使って日付のレンジを指定

DatePeriodクラスを使うことによって、日付のデータをまとめて取得することができる。 

$period = new DatePeriod(
   new DateTime('first day of this month'),
   new DateInterval('P1D'),
   new DateTime('first day of next month')
);
//今月の月初から月末までの日付データを取得することができる

第1引数ではDateTimeクラスを使っていつの日付からデータを取得するか指定、第2引数ではDateIntervalクラスを使って何日間隔で日付データを取るかを指定、そして第3引数では同じくDateTimeクラスを使って、いつまでの日付を取得するかを指定しています。 

第3引数がnext monthになっている理由は、’last day of this month’にしてしまうと、月末日を取得できない為です。 なので月内の日付を全て取得したい場合は、上記のように書きます。 

DateTimeオブジェクト操作する 

繰り替えし処理を使い日付データを取り出していきます。

foreach($period as $day){
   echo $day->format('d');
}
//0102030405060708091011121314151617....

formatはDateTimeクラスに用意されているメソッドになっており、決められた書式でデータを返してくれる。 

公式サイトにまとまっているので、以下を参考に引数を設定してあげればいい。

formatに関する公式サイト

qitaでも投稿しています。 

qiita.com