zoukankan      html  css  js  c++  java
  • 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‘’去掉, 代码省略
  • 相关阅读:
    狄利克雷卷积
    洛谷P2044 [NOI2012]随机数生成器
    Miller Rabin算法详解
    BZOJ3667: Rabin-Miller算法
    洛谷P3383 【模板】线性筛素数(Miller_Rabin)
    洛谷P3806 【模板】点分治1
    BZOJ1468: Tree
    Android Camera调用过程分析
    安卓开发37:自定义的HorizontalScrollView类,使其pageScroll的时候焦点不选中
    Android抖动动画
  • 原文地址:https://www.cnblogs.com/bneglect/p/12036834.html
Copyright © 2011-2022 走看看