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 is_dir() 判断给定文件名是否是一个目录
May 10 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
Aug 11 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
php生成微信红包数组的方法
Sep 05 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
laravel按天、按小时,查询数据的实例
Oct 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的面试题集
2006/11/19 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
js left,right,mid函数
2008/06/10 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python的装饰器用法学习笔记
2016/06/24 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
python实现祝福弹窗效果
2019/04/07 Python
YUV转为jpg图像的实现
2019/12/09 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
如何写好优秀的创业计划书
2014/01/30 职场文书
个人安全承诺书
2014/05/22 职场文书
社会发展项目建议书
2014/08/25 职场文书
个人职业及收入证明
2014/10/13 职场文书
党员转正党支部意见
2015/06/02 职场文书
小学教师教育随笔
2015/08/14 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle