- 2006/12/18
- PHP

プログラムを組んでいるとき、指定した月が何日あるのかを知りたいことが結構あるのでメモ。
date()を使う
普通のホスティングサーバであればこの方法。
<?php
$timestamp = mktime($hour,$minute,$second,$month,$day,$year);
print date("t",$timestamp);
?>
date("t") で指定したタイムスタンプの日数を得ることができる。もちろん、あらかじめ mktime() でタイムスタンプを取得しておく必要がある。
cal_days_in_month()を使う
カレンダー関数が組み込まれていれば cal_days_in_month() を使うのが一番簡単。自分でいじる権限があるサーバであれば、コンパイルするときに --enable-calendar のオプションを付け加えれば使用できる。
<?php print cal_days_in_month(CAL_GREGORIAN,$month,$year); ?>
速度・負荷的にどちらが優れているかは未検証。
個人的希望は、国が毎年毎年の祝日データを XML で提供してくれれば祝日も完璧なカレンダーが作れるんだけどなぁ。
- Newer: あけまして…
- Older: 今更ながらPS2を買いました