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 压缩文件夹的类代码
Nov 05 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
PHP 正则表达式小结
Feb 12 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
PHP常用的排序和查找算法
Aug 06 PHP
PHP的PDO常用类库实例分析
Apr 07 PHP
PDO::prepare讲解
Jan 29 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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调用VC编写的COM组件实例
2014/03/29 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
react路由配置方式详解
2017/08/07 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Python中的两个内置模块介绍
2015/04/05 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
Python面向对象封装操作案例详解
2019/12/31 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
详解python算法常用技巧与内置库
2020/10/17 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
phpquery中文手册
2021/03/18 PHP
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
大学生标准推荐信范文
2013/11/25 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
商铺租房协议书范本
2014/12/04 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
停电放假通知
2015/04/14 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL