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 相关文章推荐
APMServ使用说明
Oct 23 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
php HTML无刷新提交表单
Apr 05 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP正则表达式笔记与实例详解
May 09 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 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&amp;mysql(四)
2006/10/09 PHP
php xml-rpc远程调用
2008/12/19 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
JavaScript打字小游戏代码
2011/12/26 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python列表删除的三种方法代码分享
2017/10/31 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
如何使用Python调整图像大小
2020/09/26 Python
什么是组件架构
2016/05/15 面试题
财务会计专业毕业生自荐信
2013/10/02 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
活动总结报告范文
2014/05/04 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
商家认证委托书格式
2014/10/16 职场文书
先进学校事迹材料
2014/12/30 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
Python+DeOldify实现老照片上色功能
2022/06/21 Python