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 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
PHP解析RSS的方法
Mar 05 PHP
PHP中FTP相关函数小结
Jul 15 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
php数组指针操作详解
Feb 14 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
如何在PHP中使用数组
Jun 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函数代码
2013/08/29 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
Python 连连看连接算法
2008/11/22 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
对python3新增的byte类型详解
2018/12/04 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
Python模块常用四种安装方式
2020/10/20 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
计算机专业自荐信
2013/10/14 职场文书
检讨书格式范文
2015/05/07 职场文书
指导教师推荐意见
2015/06/05 职场文书
2016年学校招生广告语
2016/01/28 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS