[php] 取得一個月的天數/月曆模組

最近有些 case 需求有用到製作月曆的 function
像是民宿/理髮店/牙醫 等等 需要預約的行業
都會需要製作日曆的畫面 或是管理介面

之前有用過 CodeIgniter 的 Calendar Library
不錯用

他會幫你畫出月曆
但是格子的內容無法自定
有時需要塞一些其他文字/按鈕
或是想在按按鈕的時候觸發一些 js
就覺得有點缺陷 想自己做月曆的模組

在規劃這個模組的時候
遇到的第一個問題是
需要知道每個月有幾天
然後寫一個 for-loop
把每天的日期 星期 放到一個 array 裡面
再來做其他的動作

找了一下相關的資料
發現 mktime 可以做類似的動作

$timestamp = mktime(0,0,0,12,0,2011);

這樣表面上可以取得 2011年12月0日 的 timestamp
但是12月沒有0日
所以會抓到 11月的最後一天 也就是30日的 timestamp

透過這個特別的動作
就可以取得某個月最後一天的日期(天數)

$begin = mktime(0,0,0,$month,1,$year);
$end = mktime(0,0,0,$month+1,0,$year);

$diff = $end - $begin;
$days = ($diff /86400)+1;

這樣的話就可以取得天數