当前位置: 代码迷 >> PHP >> php中获取时间的几套步骤(收集)
  详细解决方案

php中获取时间的几套步骤(收集)

热度:13   发布时间:2016-04-28 23:12:47.0
php中获取时间的几套方法(收集)
1、jddayofweek(cal_to_jd(CAL_GREGORIAN, date('m'), date('d'), date('Y')));此函数返回日期在周几
2、array('Mon'=>'星期一',......);然后直接下标查询
3、根据日期获取周几的自定义函数
<?php	function getWeekName($data,$format = '星期')	{	    $week   =  date( "D ",$data);            switch($week)	    {	        case "Mon ":	            $current   =   $format."一";	            break;	        case "Tue ":	            $current   =   $format."二";	            break;	        case "Wed ":	            $current   =   $format."三";	            break;	        case "Thu ":	            $current   =   $format."四";	            break;	        case "Fri ":	            $current   =   $format."五";	            break;	        case "Sat ":	            $current   =   $format."六";	            break;	        case "Sun ":	            $current   =   $format."日";	            break;	    }	    return $current;	}	 	 	echo '今天是:'.getWeekName(time(),'星期');	echo '<br>';	echo '今天是:'.getWeekName(time(),'礼拜');	echo '<br>';	echo '2010-12-12是:'.getWeekName(strtotime('2010-12-12'),'礼拜');	?>

4、获取类似文章发表的几小时前等效果的自定义函数
<?phpfunction time2Units ($time){$year = floor($time / 60 / 60 / 24 / 365);$time -= $year * 60 * 60 * 24 * 365;$month = floor($time / 60 / 60 / 24 / 30);$time -= $month * 60 * 60 * 24 * 30;$week = floor($time / 60 / 60 / 24 / 7);$time -= $week * 60 * 60 * 24 * 7;$day = floor($time / 60 / 60 / 24);$time -= $day * 60 * 60 * 24;$hour = floor($time / 60 / 60);$time -= $hour * 60 * 60;$minute = floor($time / 60);$time -= $minute * 60;$second = $time;$elapse = '';$unitArr = array('年' =>'year', '个月'=>'month', '周'=>'week', '天'=>'day','小时'=>'hour', '分钟'=>'minute', '秒'=>'second');foreach ( $unitArr as $cn => $u ){if ( $$u > 0 ){$elapse = $$u . $cn;break;}}return $elapse;}$past = 2052345678; // 发布日期$now = time(); // 当前日期$diff = $now - $past;//相差值echo '发表于' . time2Units($diff) . '前';?>

另一种,个人认为比较好的:
function time_tran($the_time){$now_time = date("Y-m-d H:i:s",time()+8*60*60);$now_time = strtotime($now_time);$show_time = strtotime($the_time);$dur = $now_time - $show_time;if($dur < 0){return $the_time;}else{if($dur < 60){    return $dur.'秒前';}else{    if($dur < 3600){   return floor($dur/60).'分钟前';    }else{   if($dur < 86400){   return floor($dur/3600).'小时前';   }else{   if($dur < 259200){//3天内       return floor($dur/86400).'天前';   }else{       return $the_time;   }   }    }}}}

5、根据两时间差具体算相差时间
function getTime( $val ){if($val>0){$nTime['nDay'] = (int)($val/(3600*24));$nTime['nHour'] = (int)($val%(3600*24)/3600);$nTime['nMin'] = (int)($val%(3600*24)%3600/60);$nTime['nSec'] = (int)($val%(3600*24)%3600%60);}return $nTime ;}function getStrTime( $val ){$aTime = getTime($val);$dtoc = array('nDay'=>'天','nHour'=>'小时','nMin'=>'分','nSec'=>'秒');if( $aTime ){foreach( $aTime as $k=>$v){if($v){$cTime .= $v.$dtoc[$k];}}}else{$cTime = '已结止';}return $cTime;}
  相关解决方案