PHP獲取當前日期是一年中的第幾周

 /**
     * 獲取當前日期是一年中的第幾周
     * @param string $date
     * @return float
     */
    public static function getWeeks($date = '') {
        /**
         * 2007年 第一週 是 01-01 到 01 - 07 因爲第一天就是星期一 6
         * 2008年 第一週 是 01-01 到 01 - 06 因爲第一天就是星期二 5 (閏年多一天)
         * 2009年 第一週 是 01-01 到 01 - 04 因爲第一天就是星期四 3
         * 2010年 第一週 是 01-01 到 01 - 03 因爲第一天就是星期五 2
         * 2011年 第一週 是 01-01 到 01 - 02 因爲第一天就是星期六 1
         * 2012年 第一週 是 01-01 到 01 - 01 因爲第一天就是星期天 0
         */

        $now_date = $date !== '' ? $date : date('Y-m-d');

        // 獲取第一天
        $first_date = date('Y',strtotime($now_date)).'-01-01';
        // 獲取第一天是周幾
        $week_num = array(7, 1, 2, 3, 4, 5, 6);
        $first_date_week = $week_num[date('w',strtotime($first_date))];

        $diff_times = strtotime($now_date) - strtotime($first_date);
        $diff_days = MathUtil::div($diff_times , 86400,0) + 1;
        return ceil(($diff_days + $first_date_week - 1) / 7);
}
 1     //[PHP]計算當前是教學第幾周的函數 
 2     //function current_week ($date_of_firstday)  
 3     //功能:返回但前是第幾周 
 4     //參數:$date_of_firstday 默認值爲 2006-9-1 
 5     //參數格式:字符串 2006-9-1 不要出現01、02、03、04 
 6     //如果2006年9月1日星期四開學,便於計算,將開學那周的週一的日期計爲開學日期。 
 7      
 8     function current_week ($date_of_firstday='2006-8-28'){ 
 9         //開學第一天的時間戳 
10         $year = substr($date_of_firstday,0,4); 
11         $month = substr($date_of_firstday,5,1); 
12         $day = substr($date_of_firstday,7,2); 
13         $time_chuo_of_first_day = mktime(0,0,0,$month,$day,$year); 
14         //今天的時間戳 
15         $month = date('n'); //獲取月 n 
16         $day = date('d');   //獲取日 d 
17         $year = date('Y');  //獲取年 Y 
18         $time_chuo_of_current_day = mktime(0,0,0,$month,$day,$year); 
19         $cha = ($time_chuo_of_current_day-$time_chuo_of_first_day)/60/60/24; 
20         $zhou = (int)(($cha)/7 +1); 
21         return $zhou; 
22     } 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章