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模拟SQL Server的两个日期处理函数
Oct 09 PHP
PHP安全配置
Dec 06 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 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/10/09 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
Python实现把回车符\r\n转换成\n
2015/04/23 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
企业党建工作汇报材料
2014/08/19 职场文书
公司离职证明样本
2014/09/13 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
新手初学Java List 接口
2021/07/07 Java/Android
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS