1、jddayofweek(cal_to_jd(CAL_GREGORIAN, date('m'), date('d'), date('Y')));此函数返回日期在周几
2、array('Mon'=>'星期一',......);然后直接下标查询
3、根据日期获取周几的自定义函数
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、获取类似文章发表的几小时前等效果的自定义函数
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;
}
?>
php处理文件的小例子(解压缩,删除目录),供初学者参考。
$dir = './temp';
$desc = 'tar_test.tar.gz';
system("tar czvf $desc $dir"); //压缩
//system("tar zxvf $desc"); //解压
function d_rmdir($dirname) { //删除非空目录
if(!is_dir($dirname)) {
return false;
}
$handle = @opendir($dirname);
while(($file = @readdir($handle)) !== false){
if($file != '.' && $file != '..'){
$dir = $dirname . '/' . $file;
is_dir($dir) ? d_rmdir($dir) : unlink($dir);
}
}
closedir($handle);
return rmdir($dirname) ;
}
if(d_rmdir("./temp"))
echo "succes";
else
echo "false";
?>
php将字符串转为HTML的实体引用的一个类,有需要的朋友可以参考下。
class HtmlEncode {
static $_convertToHtmlEntitiesSrcEncoding='UTF-8';
/**
* 将非ASCII字符串转换成HTML实体
*
* @example HtmlEncode::encode("我信了"); //输出:我信了
* @param string $s 要进行编码的字符串
* @return string 返回HTML实体引用
*/
public static function encode($s,$srcEncoding='UTF-8') {
self::$_convertToHtmlEntitiesSrcEncoding=$srcEncoding;
return preg_replace_callback('|[^\x00-\x7F]+|',array(__CLASS__,'_convertToHtmlEntities'),$s);
}
public static function _convertToHtmlEntities($data) {
if (is_array($data)) {
$chars=str_split(iconv(self::$_convertToHtmlEntitiesSrcEncoding,"UCS-2BE",$data[0]),2);
$chars=array_map(array(__CLASS__,__FUNCTION__),$chars);
return join("",$chars);
} else {
$code=hexdec(sprintf()("%02s%02s;",dechex(ord($data {0})),dechex(ord($data {1}))));
return sprintf("&#%s;",$code);
}
}
}