一、计算2个坐标点之间距离
/**
* 根据起点坐标和终点坐标测距离
* @param [array] $from [起点坐标(经纬度),例如:array(118.012951,36.810024)]
* @param [array] $to [终点坐标(经纬度)]
* @param [bool] $km 是否以公里为单位 false:米 true:公里(千米)
* @param [int] $decimal 精度 保留小数位数
* @return [string] 距离数值
*/
function get_distance($from,$to,$km=true,$decimal=2){
sort($from);
sort($to);
$EARTH_RADIUS = 6370.996; // 地球半径系数
$distance = $EARTH_RADIUS*2*asin(sqrt(pow(sin( ($from[0]*pi()/180-$to[0]*pi()/180)/2),2)+cos($from[0]*pi()/180)*cos($to[0]*pi()/180)* pow(sin( ($from[1]*pi()/180-$to[1]*pi()/180)/2),2)))*1000;
if($km){
$distance = $distance / 1000;
}
return round($distance, $decimal);
}
二、时间比较
//验证打卡时间段
$amworktimelist=explode(' - ',$clockin['clockin_timerange']);
$startTime=strtotime(date('Y-m-d').$amworktimelist[0]) ;
$endTime=strtotime(date('Y-m-d').$amworktimelist[1]) ;
if(!(($startTime<$time)&&($time<$endTime))){
return $this->response(400,'未在指定的打卡时间打卡,指定打卡时间为:'.$clockin['clockin_timerange']);
}
参考以下代码:
文章来源地址https://www.toymoban.com/news/detail-608447.html
文章来源:https://www.toymoban.com/news/detail-608447.html
到了这里,关于学习路之PHP--计算2个坐标点之间距离、时间比较的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!