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) ? '在同一月' : '不在同一月';

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值