PHP 判断给定两个时间是否在同一周,月,年

Posted 这个名字怎么用不了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)){
            $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‘’去掉, 代码省略

以上是关于PHP 判断给定两个时间是否在同一周,月,年的主要内容,如果未能解决你的问题,请参考以下文章

获取PHP中给定周数的第一周

hashcode()与equals()方法(第8周)

SqlServer中怎么样判断当前时间是不是在一个时间段之中?

C语言应用(2)——判断当前时间是不是在一个时间段内(含跨天)

php怎么判断当前时间在某个时间范围内

如何判断当前时间是不是在一个时间段内?