PHP算法:知道具体年月日求本周从几号到几号?

如题,年月日是变量,大家谁能帮我写出算法,尤其是在闰月,或者闰年,月和月的临界的地方,先谢过了。再次提醒 年 月 日是变量,是随页面变的。
首先谢谢老兄,但是到1月30日的时候不变了。还有修改一下这里 $today-$w+1

第1个回答  2010-01-14
function weekStartEnd($y, $m, $d) {
$d = date("$y-$m-$d 00:00:00");
$s = strtotime($d);
$w = date('w', strtotime($d)); // 得到指定日期是星期几
$add1 = 0 - $w; // 周日,和指定日期相差的天数
$add2 = 6 - $w; // 周六,和指定日期相差的天数
$s1 = strtotime("$add1 days", $s);
$s2 = strtotime("$add2 days", $s);
return array(
'start' => date("Y年m月d日", $s1),
'end' => date("Y年m月d日", $s2)
);
}

$test = weekStartEnd(2010, 1, 14);
echo "周开始日: ".$test['start']."\n";
echo "周结束日: ".$test['end']."\n";

结果

周开始日: 2010年01月10日
周结束日: 2010年01月16日本回答被提问者采纳
第2个回答  2010-01-14
下面的程序调试通过,你参考其代码应该能写出你需要的东西:

<?php
$y=2010;
$m=1;
$d=14;
$today=mktime($m,$d,$y);
$w=date('w',$today);
//echo $w;
echo '本周开始日期:',date('Y-m-d', $today-$w*24*3600),"\n";
echo '本周结束日期:',date('Y-m-d', $today+(7-$w)*24*3600),"\n";
?>

程序执行结果:
本周开始日期:2010-01-10
本周结束日期:2010-01-17
相似回答