獲取某個日期是一年中的第幾周


 /**
     * 獲取日期是一年中的第幾周
     * @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);
}

Tips:不是1號到7號是第一周。要看1號是周幾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM