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 相关文章推荐
php 动态添加记录
Mar 10 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
收集的二十一个实用便利的PHP函数代码
Apr 22 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
PHP json_decode函数详细解析
Feb 17 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
smarty内置函数section的用法
Jan 22 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
php通过两层过滤获取留言内容的方法
Jul 11 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 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执行速度全攻略(下)
2006/10/09 PHP
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
php获取mysql版本的几种方法小结
2008/03/25 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
如何让CI框架支持service层
2014/10/29 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
vue component组件使用方法详解
2017/07/14 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
详解Python之unittest单元测试代码
2018/01/24 Python
python lxml中etree的简单应用
2019/05/10 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
社区健康教育实施方案
2014/03/18 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL