2678777127 发表于 2018-2-11 12:10:13


            核心代码:
Class Utils {
   /**
       * format MySQL DateTime (YYYY-MM-DD hh:mm:ss) 把mysql中查找出来的数据格式转换成时间秒数
       * @param string $datetime
       */
        public function fmDatetime($datetime) {
          $year = substr($datetime,0,4);
          $month = substr($datetime,5,2);
          $day = substr($datetime,8,2);
          $hour = substr($datetime,11,2);
          $min = substr($datetime,14,2);
          $sec = substr($datetime,17,2);
          return mktime($hour,$min,$sec,$month,$day,0+$year);
        }
        /**
       *
       * 根据俩个时间获取俩个时间的 包含的 年,月数,天数,小时,分钟,秒
       * @param String $start
       * @param String $end
       * @return ArrayObject
       */
       private function diffDateTime($DateStart,$DateEnd){
                $rs = array();
               
                $sYear = substr($DateStart,0,4);
                $eYear = substr($DateEnd,0,4);
               
                $sMonth = substr($DateStart,5,2);
                $eMonth = substr($DateEnd,5,2);
               
                $sDay = substr($DateStart,8,2);
                $eDay = substr($DateEnd,8,2);
               
                $startTime = $this->fmDatetime($DateStart);
                $endTime = $this->fmDatetime($DateEnd);
                $dis = $endTime-$startTime;//得到俩个时间的秒数
                $d = ceil($dis/(24*60*60));//得到天数
                $rs['day'] = $d;//天数
                $rs['hour'] = ceil($dis/(60*60));//小时
                $rs['minute'] = ceil($dis/60);//分钟
                $rs['second'] = $dis;//秒数
                $rs['week'] = ceil($d/7);//周
               
                $tem = ($eYear-$sYear)*12;//月份
                $tem1 = $eYear-$sYear;//年
                if($eMonth-$sMonth=0){
                                $tem ++;
                                $tem1++;
                        }
                }else if($eMonth-$sMonth>0){//月份相减正负
                        $tem1++;
                        if($eDay-$sDay>=0){//且日期相减为正数
                                $tem +=($eMonth-$sMonth)+1;
                        }else{
                                $tem +=($eMonth-$sMonth);
                        }
                }
                $rs['month'] = $tem;
                $rs['year'] = $tem1;
               
                return $rs;
        }
}
页: [1]
查看完整版本: PHP获取指定时间段之间的 年,月,天,时,分,秒