PHP获取指定时间段之间的 年,月,天,时,分,秒
核心代码:
ClassUtils{
/**
*formatMySQLDateTime(YYYY-MM-DDhh:mm:ss)把mysql中查找出来的数据格式转换成时间秒数
*@paramstring$datetime
*/
publicfunctionfmDatetime($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);
returnmktime($hour,$min,$sec,$month,$day,0+$year);
}
/**
*
*根据俩个时间获取俩个时间的包含的年,月数,天数,小时,分钟,秒
*@paramString$start
*@paramString$end
*@returnArrayObject
*/
privatefunctiondiffDateTime($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);
}elseif($eMonth==$sMonth){//月份相同
if($eDay-$sDay>=0){
$tem++;
$tem1++;
}
}elseif($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都有可能
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下