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新手上路(五)
Oct 09 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
php简单分页类实现方法
Feb 26 PHP
php中return的用法实例分析
Feb 28 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 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
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
Get或Post提交值的非法数据处理
2006/10/09 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
P/Invoke是什么
2015/07/31 面试题
个人实习生的自我评价
2014/02/16 职场文书
公司晚会策划方案
2014/05/17 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
个人查摆剖析材料
2014/10/04 职场文书
办公室禁烟通知
2015/04/23 职场文书
计划生育目标责任书
2015/05/09 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
spring 项目实现限流方法示例
2022/07/15 Java/Android