我必须得到多少个星期六以及某个月的多少个星期日,并将它传递给循环。我的输入可以是这样PHP日期自定义脚本帮助需要
HowmanySaturdays("Feb,2010");
或
HowmanySaturdays("02,2010");
我必须得到多少个星期六以及某个月的多少个星期日,并将它传递给循环。我的输入可以是这样PHP日期自定义脚本帮助需要
HowmanySaturdays("Feb,2010");
或
HowmanySaturdays("02,2010");
function HowManySaturdays($month)
{
$date = explode(',', $month);
$date = date_parse($date[1] . '-' . $date[0]);
$days = cal_days_in_month(CAL_GREGORIAN, $date['month'], $date['year']);
$timestamp = jdtounix(gregoriantojd($date['month'], 1, $date['year']));
$date = getdate($timestamp);
return (floor($days/7)) + ((($days % 7) + $date['wday'] >=7) ? 1 : 0);
}
蛮力方法:迭代指定月份的所有天;对于星期六的任何一天,增加一个计数器变量。完成循环后,返回计数器。
更好的方法:找到给定月份中的第一个星期六,然后增加7,直到您到达下个月。
更好的方法:找到给定月份中第一天的星期几。如果不是星期六,则增加达到星期六所需的天数。然后继续使用方法2.
更好:使用方法2查找第一个星期六。查找月份中的天数。这两个给你剩余的月份天数。除以7并向下取整。
嗨,感谢您的评论,根据您的想法做了一个脚本。检查答案 – Elamurugan 2010-11-02 08:26:31
function HowManyDays($day,$month,$year)
{
$d = date("t", mktime(0,0,0,$month,1,$year));
$n = 1;
$noOfDays = array();
echo "<b>".$day."'s </b> found in $month,$year <br>";
for ($i = 1; $i <= $d; $i++) {
$c = date("l", mktime(0,0,0,$month,$i,$year));
if (strtolower($c) == strtolower($day)) {
$noOfDays[$n] = $i."/".$month."/".$year;
echo "<b>".$c." On ".$i."/".$month."/".$year."</b><br>";
$n++;
} else {
//echo $c." On ".$i."/".$month."/".$year."<br>";
}
}
return $noOfDays;
}
$noOfDays = HowManyDays("Saturday",1,2010);
print_r($noOfDays);
这将返回天,其每月的日期作为数组。
嗨巴鲁克,感谢您的脚本。我做了另一个。如果需要,请检查答案 – Elamurugan 2010-11-02 08:24:55