有用的的PHP函数

1,判断某一时间(时间戳)是不是当天:

function is_today($time)
{
	$l1 = localtime($time, true);
	$l2 = localtime(time(), true);
	
	if ($l1['tm_year'] == $l2['tm_year'] && $l1['tm_yday'] == $l2['tm_yday'])
	{
		return true;
	}
	else 
	{
		return false;
	}
}

localtime()赶回参数值的关联数组(第二个参数为true时)或索引数组。

2,判断两个时间是不是同一天:

function is_oneday($time1, $time2)
{
	$l1 = localtime($time1, true);
	$l2 = localtime($time2, true);
	
	if ($l1['tm_year'] == $l2['tm_year'] && $l1['tm_yday'] == $l2['tm_yday'])
	{
		return true;
	}
	else 
	{
		return false;
	}
}

这个和第一个方法类似。

3,浏览器缓存:

function hearder_cache($maxAge=43200,$expire=43200)
{
	$gmt = gmmktime();  //格林威治时间戳
	header("Cache-Control: max-age=".$maxAge);
	header("Pragma: cache");
	header("Expires: ". gmdate("D, d M Y H:i:s", $gmt + $expire) . " GMT");  //gmdate()格林威治时间戳格式化
}


4,活动时间相关

//今天时间
function &today_date()
{
	return date('Y-m-d');
}

//今天零点时间
function &today_time()
{
	return  strtotime(date("Y-m-d").' 00:00:00');
}
//应用内今日开始时间
function app_today_time()
{
	$cur_time = time();
	$today_time = strtotime(date('Y-m-d', $cur_time ).' 03:00:00');
	if( $cur_time<$today_time )
	{
		$start_time = $today_time-86400;
	} else {
		$start_time = $today_time;
	}
	return $start_time;
}

function &begin_hour()
{
	$hour = date('G',time())-3;
	if($hour<0)
	{
		$hour = 0;
	}
	return  $hour;
}

//现在时间
function now_time()
{
	return time();
}

5,根据经纬度计算距离
/**
*求两个已知经纬度之间的距离,单位公里
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离,单位公里
**/
function get_distance($lng1,$lat1,$lng2,$lat2)//根据经纬度计算距离
{
    //将角度转为狐度 
    $radLat1=deg2rad($lat1);
    $radLat2=deg2rad($lat2);
    $radLng1=deg2rad($lng1);
    $radLng2=deg2rad($lng2);
    $a=$radLat1-$radLat2;//两纬度之差,纬度<90
    $b=$radLng1-$radLng2;//两经度之差纬度<180
    $s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
    return $s;
}

6,随机函数概率

/**
 * 随机数概率函数
 *  example:
 *	$ary = array(80,15,5);
 *	echo __rand_array_key($ary);
*/
function __rand_array_key($ary)
{
    if ((!$ary) && (!is_array($ary))) 
    {
            trigger_error(' PARAM $ary IN __rand_array_key ERROR ', E_USER_WARNING );
            return false;
    }
    $count = array_sum($ary);
    //取随机数(1, 概率总数)
    $rand 	= rand(1, $count);
    
    $sum 	= 0;
    $aryNum = count($ary);
    for($i=0;$i < $aryNum;$i++){
            $sum += $ary[$i];//当前区间的峰值,$rand已经>前一区间的峰值
            if (($sum >= $rand)) {
                    return $i;
            }
    } 
    trigger_error(' PARAM $ary IN __rand_array_key ERROR ', E_USER_WARNING );
    return false;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值