日期:2011-07-11  浏览次数:20580 次

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)。下面看一个具体的例子:

<?php
/*
功能: 计算今日是当月的第几个星期几
*/
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 个星期二