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


Posted in PHP onJune 05, 2016

核心代码:

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 +=($eMonth-$sMonth);
		}else if($eMonth==$sMonth){//月份相同
			if($eDay-$sDay>=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;
	}
}

一年多一天,返回的是2年,一个月多一天返回的是2个月,以此推......项目需要,才做此出来,开始我也到网上找这样的例子,但大家都是把年就按365天来算,月就按30天来算,这样算出来的结果肯定是没用的,年有可能是366天,月有可能是31,29,28都有可能

PHP 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
php实现字符串反转输出的方法
Mar 14 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
PHP文件操作实例总结
Sep 27 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
PHP 中常量的知识整理
Apr 14 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
php 如何获取文件的后缀名
Jun 05 #PHP
PHP常用文件操作函数和简单实例分析
Jun 03 #PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 #PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 #PHP
PHP学习笔记之php文件操作
Jun 03 #PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 #PHP
php for 循环使用的简单实例
Jun 02 #PHP
You might like
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
详解Django admin高级用法
2019/11/06 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Python如何定义接口和抽象类
2020/07/28 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
介绍一下linux的文件权限
2014/07/20 面试题
会计专业自我鉴定
2014/02/10 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
竞选班委演讲稿
2014/04/28 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
死者家属慰问信
2015/03/24 职场文书
电影复兴之路观后感
2015/06/02 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
MySQL基础(一)
2021/04/05 MySQL
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
python异常中else的实例用法
2021/06/15 Python
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python