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教程 插件机制在PHP中实现方案
Nov 02 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
解析PHP提交后跳转
Jun 23 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
php 中的closure用法详解
Jun 12 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
Laravel定时任务的每秒执行代码
Oct 22 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与javascript的两种交互方式
2006/10/09 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
JS功能代码集锦
2016/05/04 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
集体婚礼证婚词
2014/01/13 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
励志演讲稿500字
2014/08/21 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书