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实现的MySQL数据浏览器
Mar 11 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
理解和运用PHP中的多态性[译]
Aug 02 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
通过php删除xml文档内容的方法
Jan 23 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
python之PyMongo使用总结
2017/05/26 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
python中的协程深入理解
2019/06/10 Python
序列化Python对象的方法
2020/08/01 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
麦当劳辞职信范文
2014/01/18 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
原材料检验岗位职责
2014/03/15 职场文书
群教个人对照检查材料
2014/08/20 职场文书
辞职信范文大全
2015/03/02 职场文书
地道战观后感400字
2015/06/04 职场文书
2015最新民情日记范文
2015/06/26 职场文书