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里面的抽象类
Jan 28 PHP
PHP Zip压缩 在线对文件进行压缩的函数
May 26 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
php截取字符串函数分享
Feb 02 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP判断密码强度的方法详解
May 26 PHP
CakePHP框架Model关联对象用法分析
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提示undefined index的几种解决方法
2012/05/21 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
Javascript MD4
2006/12/20 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
javascript中 try catch用法
2015/08/16 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
python中的for循环
2018/09/28 Python
Python线程同步的实现代码
2018/10/03 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
水务局局长岗位职责
2013/11/28 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
药剂专业求职信
2014/06/20 职场文书
2014年人事科工作总结
2014/11/19 职场文书
教师辞职信范文
2015/02/28 职场文书
小学信息技术教学反思
2016/02/16 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书