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中str_replace函数使用小结
Oct 11 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
PHP实现的简单异常处理类示例
May 04 PHP
laravel自定义分页效果
Jul 23 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删除文件夹的三种方法
2013/06/09 PHP
php实现的用户查询类实例
2015/06/18 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
vue-star评星组件开发实例
2018/03/01 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
python3中set(集合)的语法总结分享
2017/03/24 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
优秀毕业生事迹材料
2014/02/12 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
放假通知
2015/04/14 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
赤壁观后感(2)
2015/06/15 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
导游词之介休绵山
2019/12/31 职场文书
新手入门Mysql--概念
2021/06/18 MySQL
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS