• ベストアンサー

先月の日数を求める関数にうるう年を適応するかどうか

お世話になります。 今年2月はうるう年ではありませんが下記のPHP関数において、 ■指定した月の日数 <?php echo date('t', strtotime('-1 month')); ?> これは、表示させると先月((month-1)月)の日数「31」を吐き出すのですが、 この関数にはうるう年処理は設定されているのでしょうか? もしPHP5にこの処理がなければ自分でうるう年処理を作成しようとしております。 ご返事お待ちしております。宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

<?php // 今年の2月 var_dump(date('t', strtotime('+0 month'))); // 来年の2月 var_dump(date('t', strtotime('+12 month'))); // 再来年の2月(閏年) var_dump(date('t', strtotime('+24 month'))); を実行してみてください、バッチリ実装されていることが分かるでしょう。また、PHPには指定した日付が有効かどうかチェックするcheckdate関数や、「14年2月1日」といった表記や「2014年1月32日」などの不正な日付を「2014年2月1日」に自動的に修正したりするmktime関数も用意されています。 PHP Manual - checkdate http://www.php.net/manual/ja/function.checkdate.php PHP Manual - mktime http://www.php.net/manual/ja/function.mktime.php こういった関数は標準関数豊富なPHPでなくとも持っている言語は多くあるでしょう。もっともPHPらしさが現れている関数は「日の出・日の入り時刻」を求める関数ですね、こんなものを標準でサポートしている言語はPHPしかありません・・・www PHP Manual - date_sunrise http://www.php.net/manual/ja/function.date-sunrise.php PHP Manual - date_sunset http://www.php.net/manual/ja/function.date-sunset.php よくネタにされます。 ShirasakaBlog - 人狼サイト制作でこだわったところ「PHPの関数で日の出・日の入り前後でデザインが違うサイトにした」 http://shirasaka.tv/3912 >> PHPで、日の出時刻を返してくれる関数があったんです。 >> こんな超マイナーな関数、誰が使うんでしょうね。しょうがないから僕が使います。

-q7P2izb__
質問者

お礼

またまたご回答頂きありがとうございます!! 超有力な回答を頂き大変感激しております。 >// 再来年の2月(閏年) >var_dump(date('t', strtotime('+24 month'))); これには気づきませんでしたね~。さすがです! 確かに、今月は2月ですから最善手ですね(笑) また、checkdate関数なんて便利なのあったのですね! date('X')内に指定するXくらいの知識しかなかったものでw さらに日の出日の入り時刻まであるとは知りませんでした。 それなら春分、秋分の日もあるかもと一瞬思いました。 また、サイト制作でこだわったところ、 ページ見ましたけど、こんな仕様に頭抱えるのかww かなり爆笑しました(笑) でも確かに、日の出日の入り時刻なんてこれがなければ、 計算は複雑怪奇になりそうですね。 どうもありがとうございました。

関連するQ&A