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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
php四种基础算法代码实例
Oct 29 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
PHP与SQL语句常用大全
Dec 10 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
详解PHP中curl_multi并发的实现
Jun 08 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
十大“创意”战术!
2020/03/04 星际争霸
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP实现微信提现功能
2018/09/30 PHP
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
js脚本实现数据去重
2014/11/27 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
线程和进程的区别及Python代码实例
2015/02/04 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
铣工实训报告
2014/11/05 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
Java 数据结构七大排序使用分析
2022/04/02 Java/Android
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL