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、获取类似文章发表的几小时前等效果的自定义函数
<?php function 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; }