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;}