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     } 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值