代码之家  ›  专栏  ›  技术社区  ›  Elamurugan

需要PHP日期自定义脚本帮助

  •  0
  • Elamurugan  · 技术社区  · 14 年前

    我必须得到多少星期六和多少星期日在一个给定的月,并把它传递给循环。我的输入可以是这样的

      HowmanySaturdays("Feb,2010");
    

      HowmanySaturdays("02,2010");
    
    3 回复  |  直到 12 年前
        1
  •  0
  •   Baruch    14 年前
    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);
    }
    
        2
  •  1
  •   tdammers    14 年前

    蛮力方法:遍历给定月份的所有天;对于星期六的任何一天,增加一个反变量。循环完成后,返回计数器。

    更好的方法是:找出给定月份第一天的星期几。如果不是星期六,则增加所需的天数以达到星期六。然后继续使用方法2。

    更好的方法是:使用方法2找到第一个星期六。找出一个月的天数。这两个月给你剩下的天数。除以7,四舍五入。

        3
  •  0
  •   Elamurugan    14 年前
    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);
    

    这将以数组形式返回天及其月份日期。