获取本地时间与指定城市的时差

$longitude = $info['longitude'];
        $latitude = $info['latitude'];

        //通过Googled api 根据经纬度获取当地时间与utc国际时间差
        $url = "https://maps.googleapis.com/maps/api/timezone/json?location=$longitude,$latitude&timestamp=1331161200&language=en&key=你的key";

        $curl = curl_init();

        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);

        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 1);

        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        //执行命令
        $data = curl_exec($curl);

        //关闭URL请求
        curl_close($curl);

        if ($data == '' or $data == null){

            return 'err';die();
        }

        $data = substr($data,1,-1);

        $data = '{'.explode('{',$data)[1];

        $data = json_decode($data,true);

        if (!isset($data['rawOffset'])){

            return 'err';die();
        }

        //指定地点utc时差
        $time = $data['rawOffset'];

        //获取gmt世界标准时间
        $GMT = strtotime(gmdate("Y-m-d H:i:s"));

        //本地时间 - (国际时间 + 通过api获取指定地点与国际时间的时区差 【注:结果为指定城市的当前时间】)【注:结果为本地当前时间与指定地点相差时区】(utc即本地时间为更精准的gmt)
        $gmp =  time() - ($GMT + $time);      //时差

 

posted @ 2020-08-10 18:41  祈愿仙帝  阅读(307)  评论(0编辑  收藏  举报