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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP图片加水印实现方法
May 06 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
PHP高并发和大流量解决方案整理
Mar 09 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
文件系统基本操作类
2006/11/23 PHP
php实现的漂亮分页方法
2014/04/17 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
javascript demo 基本技巧
2009/12/18 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
JS中的作用域链
2017/03/01 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
简单了解vue.js数组的常用操作
2019/06/17 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
Python collections模块使用方法详解
2019/08/28 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
python代码中怎么换行
2020/06/17 Python
python利用platform模块获取系统信息
2020/10/09 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
个人合作协议书范本
2014/04/18 职场文书
关爱老人标语
2014/06/21 职场文书
初中同学会致辞
2015/08/01 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
使用Ajax实现无刷新上传文件
2022/04/12 Javascript
Redis 限流器
2022/05/15 Redis