PHP 判斷給定兩個時間是否在同一周,月,年


  • 判斷是否在同一周
    date_default_timezone_set('PRC');
    //判斷是否在同一周,原理:求出其中一個時間戳所在周的周一凌晨時間戳和周日24.00時間戳,如果另一個時間戳在這個范圍內,則說明在同一周,否則不在同一周
    function getSameWeek($pretime,$aftertime){
        $monday = strtotime('last Monday', $pretime); //離當前時間戳$pretime最近的上一個周一的時間戳,如果當前時間$pretime是周一,$monday存儲的仍然是上周一
        //判斷如果當前給定時間戳就是周一,那么就返回當前時間戳給$monday
        if(date('w', $pretime) == 1){
            $monday = $pretime;
        }
        $sunday = $monday+24*3600*7; //周日時間戳
        if($aftertime >= $sunday){
            return false;
        }
        
        if( $aftertime <= $monday ){
            return false;
        }
        return true;
    }
    $testWeek_start=strtotime('2019-8-19');
    $testWeek_end=strtotime('2019-8-18');
    echo getSameWeek($testWeek_start, $testWeek_end) ? '在同一周' : '不在同一周', '<br>';

     

  • 判斷是否在同一月(可以使用上面的思路來實現,但這里使用另一個思路)
    date_default_timezone_set('PRC');
    
    function isSameMonth($time1, $time2)
    {
        $m1 = date('Ym', $time1);
        $m2 = date('Ym', $time2);
        // 必須判斷年份,不然2019-8和2020-8會被認為同一月
        if($m1 == $m2){
            return true;
        }
        return false;
    }
    
    $t1 = strtotime('2018-8-13');
    $t2 = strtotime('2019-8-18');
    echo isSameMonth($t1, $t2) ? '在同一月' : '不在同一月';

     

  • 判斷年使用判斷月的思路比較簡單,只需把date里的‘’m‘’去掉, 代碼省略


免責聲明!

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



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