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