【PHP】PHPで月末を取得する方法について
おはようございます。
今日は、「PHPで月末を取得する方法について」です。
今作ってるサイトで毎月の月末を取得する方法を調べたので、今日はそれを書いていこうと思います。
せっかちな人のために、結論は
<?php for($m=1;$m<=12;$m++){ $targetMonth = date('Y-'.$m); $lastMonthDate[$m] = date('Y-m-d', strtotime('last day of ' . $targetMonth)); echo $lastMonthDate[$m]; } ?>
です。
(閏年もちゃんと29日になります。)
調べてると「今月末」の日付の取り方で
<?php echo date('Y-m-t’); ?>
といったコード等はよく出てくるのですが、これだとあくまで「今月分」しか取れません。
安易にこれをforでまわすと
<?php for($m=1;$m<=12;$m++){ echo date('Y-'.$m.'-t’); //結果↓ //2014-1-31 //2014-2-31 //2014-3-31 //2014-4-31... } ?>
となってしまいますので注意しましょう
(「t」のところが実行時の月末(5月なので31)が入ってしまうためです。)
簡単そうで、ハマりやすい(自分がハマっただけですが)部分かと思いますので、しっかり期待された値が取得できているかチェックが必要ですね。
他にも、こんな書き方もあるみたいです。
<?php $year = date('Y'); for($m=1;$m<=12;$m++){ echo date('Y-m-t', mktime(0, 0, 0, $m, 1, $year)); //結果↓ //2014-1-30 //2014-2-28 //2014-3-31 //2014-4-30... } ?>
参考URLはコチラ
PHP 指定した月の月末日を取得 -でじうぃき
※リンク先の2つ目のコードが参考コードですが、このコードは閉じカッコ「)」が一つ足りないので、コピペするとエラーになりますので注意です。
ご一読頂きまして、ありがとうございました。