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编写和读取XML的几种方式
Jan 12 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP整合PayPal支付
Jun 11 PHP
php文件操作之小型留言本实例
Jun 20 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
php算法实例分享
Jul 14 PHP
php session的锁和并发
Jan 22 PHP
php实现留言板功能
Mar 05 PHP
PHP fclose函数用法总结
Feb 15 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php生成图片验证码
2015/06/09 PHP
javascript获取web应用根目录的方法
2014/02/12 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
python实现KNN近邻算法
2020/12/30 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
职业生涯规划怎么写
2013/12/29 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
2014年端午节活动方案
2014/03/11 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
政协工作总结2015
2015/05/20 职场文书
故意伤害辩护词
2015/05/21 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript