搜索
查看: 1571|回复: 0

PHP获取指定时间段之间的 年,月,天,时,分,秒

[复制链接]

4856

主题

4856

帖子

4861

积分

新手上路

Rank: 1

积分
4861
发表于 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;
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

长春门户网站

长春门户网是网民了解长春的网络窗口,同是提供长春地区百姓生活分类供求信息的门户网站,同时提供长春网站建设、长春网站设计,我们将逐步的完善网站分类信息资源;

长春门户网二维码

联系我们

  • 工作时间:早上8:00 - 晚上5:30
  • 投稿联系:13624467185(微信同号)
  • 反馈邮箱:5053050@QQ.com
  • 公司地址:吉林省长春市亚泰大街与自由大路交汇五环国际大厦1408室

QQ|小黑屋|手机版|Archiver|cc! ( 吉ICP备2021009740号-8 )

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表