php中有一個非常強悍的系統函數date()函數。巧妙的利用他可以實現顯示任意我們需要的時間。
比如今天遇到個需要是要判斷今天是本月的第幾個星期幾,這裡就不討論這種說話有沒有問題以及是否有意義,下面具體看如何使用php去實現這個功能吧。
這個功能主要還是用到了date()函數的 w j 兩個參數,date()函數參數很多。
PHP date()參數說明關於 w j 兩個參數的解釋如下:
w 表示星期中的第幾天,數字表示 0(表示星期天)到 6(表示星期六)
j 月份中的第幾天,數字表示從 1 到 31利用php判斷今日是本月的第幾個星期幾的具體演算法是:利用日期(即幾號)和一周的總天數(7天)的關係,借用ceil()函數直接得出今天是本月的第幾個星期幾。
ceil()函數用於計算大於指定數(浮點數,float number)的最小整數。
比如:假設某月3日是星期四,那麼,ceil(3/7) 的值將為1,這表明這一天是該月的第一個星期四。下一個星期四的計算式子是 ceil(10/7),其值為2,表明10日是第二個星期四。其他的依次類推。根據這個演算法那麼可以確定為計算今日是當月中的第幾個星期幾的計算公式設定為:ceil(日期/7)。
下面看一個具體的例子:
/*
功能: 計算今日是當月的第幾個星期幾
*/
header('content-Type: text/html; charset=utf-8');
$wk_day=date('w'); //得到今天是星期幾
$date_now=date('j'); //得到今天是幾號
$wkday_ar=array('日','一','二','三','四','五','六'); //正常化周日的表達
$cal_result=ceil($date_now/7); //計算是第幾個星期幾
$str=date("Y年n月j日")." 星期".$wkday_ar[$wk_day]." - 本月的第 ".$cal_result." 個星期".$wkday_ar[$wk_day];
echo $str;
?>
本次運行得到的結果如下:
2013年5月21日 星期二 - 本月的第 3 個星期二