因此,我试图计算一个月内的周数,包括第1天是星期日或星期六的可能性,而31日是星期一,这意味着那个月会有6周。 到目前为止我得到了这个:
<?php
for ($Month = 1; $Month <= 12; $Month++)
{
if ($rstFase->fields['StartMonth'] <= $Month)
{
?>
<div class="mounthDate">
<?php
$timestamp = mktime(0, 0, 0, $x, 1, $i);
while (date('n', $timestamp) == $x)
{
?>
<div class="week"></div>
<?php
$timestamp = strtotime("+1 week", $timestamp);
}
?>
</div>
<?php
}
else
{
?>
<div class="mounthDate"></div>
<?php
}
}
因此,正确计算有4周或5周的月份,但例如2017年7月有6个,它的数量为5个。
任何想法?
答案 0 :(得分:0)
取决于一周开始的哪一天,但这不是重点:) 这样做你需要的吗?
<?php
function weeks($month, $year){
$firstday = date("w", mktime(0, 0, 0, $month, 1, $year));
$lastday = date("t", mktime(0, 0, 0, $month, 1, $year));
if ($firstday!=0) $count_weeks = 1 + ceil(($lastday-8+$firstday)/7);
else $count_weeks = 1 + ceil(($lastday-1)/7);
return $count_weeks;
}
echo weeks(1,2017)."<br/>"; /* 6 */
echo weeks(7,2017)."<br/>"; /* 6 */
?>