php: 判断今日是本月的第几个星期几
作者:黑马
有一些节日定为某月的第几个星期几,如世界海事日定在每年的九月第五个星期天、国际住房日定在十月份的第一个星期一、十一月份的第四个星期四则是感恩节(加拿大是十月份的第二个星期一),为此,要知道今天是不是某个这类节日,有必要计算今天是本月的第几个星期几。
在php里,有一些很容易的方法知道今天是星期几,用date()函数就很方便:
$w_day=date("w");
通过“w”参数date()函数取出的是从0到6的正整数值,0表示星期日,6表示星期六。
然而无法从中知道是本月的第几个星期几。这需要设计一个算法。思路是:利用日期(即几号)和一周的总天数(7天)的关系,借用ceil()函数直接得出今天是本月的第几个星期几。ceil()函数用于计算大于指定数(浮点数,float number)的最小整数,结果不足1的视为1。比如:
假设某月3日是星期四,那么,ceil(3/7) 的值将为1,这表明这一天是该月的第一个星期四。下一个星期四的计算式子是 ceil(10/7),其值为2,表明10日是第二个星期四。其他的依次类推。依此,第几个星期几的计算公式设定为:ceil(日期/7)。
获得日期(几号)与获得星期几一个简单,用date()函数加“j”参数即可:date("j")。以下是计算今天是本月第几个星期几的完整的代码,代码中加入了星期几的汉语显示格式化处理机制以规范星期几的表达:
<?php
/* 功 能: 计算今日是当月的第几个星期几
文件名: wkday.php
编 写: 黑马
*/
$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; //打印信息
?>
运行以上代码,将得到预期的结果。以下是今日[2008年7月24日]的信息:
2008年7月24日 星期四 - 本月的第 4 个星期四
【 文章来源 本站原创[2008.3.18] 转载请注明出处与作者等信息 】
网 |

