簡體   English   中英

需要PHP日期自定義腳本幫助

[英]PHP Date custom script help needed

我必須獲取給定月份中有多少個星期六和幾個星期天,並將其傳遞給for循環。 我的輸入可以像這樣

  HowmanySaturdays("Feb,2010");

要么

  HowmanySaturdays("02,2010");

蠻力法:遍歷給定月份的所有天; 對於星期六的任何一天,請增加一個計數器變量。 完成循環后,返回計數器。

更好的方法:找到給定月份的第一個星期六,然后增加7直到下個月。

更好的方法是:查找給定月份第一天的星期幾。 如果不是星期六,請增加所需的天數以達到星期六。 然后繼續使用方法2。

更好的是:使用方法2查找第一個星期六。查找月份中的天數。 這兩個給您提供當月剩余的天數。 除以7並四舍五入。

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);
}
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);

這將返回天及其月份的日期作為數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM