根据ip地址获取时区
方法一(推荐)
//获取当前时间
function getTime()
{$timezone = getTimeZoneFromIpAddress(); //获取时区if(!$timezone){return false;}date_default_timezone_set("$timezone");$time = time();$date=date('Y-m-d',$time);$datetime=date('H:i',$time);$ap_pm = gmdate('a',$time);$data = array('timezone'=>$timezone,'time'=>$time,'date'=>$date,'datetime'=>$datetime,'ap_pm'=>$ap_pm);return $data;
}function getTimeZoneFromIpAddress(){$clientsIpAddress = get_client_ip();$clientInformation = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$clientsIpAddress));$clientsLatitude = $clientInformation['geoplugin_latitude'];$clientsLongitude = $clientInformation['geoplugin_longitude'];$clientsCountryCode = $clientInformation['geoplugin_countryCode'];$timeZone = get_nearest_timezone($clientsLatitude, $clientsLongitude, $clientsCountryCode) ;return $timeZone;}function get_client_ip() {$ipaddress = '';if (getenv('HTTP_CLIENT_IP'))$ipaddress = getenv('HTTP_CLIENT_IP');else if(getenv('HTTP_X_FORWARDED_FOR'))$ipaddress = getenv('HTTP_X_FORWARDED_FOR');else if(getenv('HTTP_X_FORWARDED'))$ipaddress = getenv('HTTP_X_FORWARDED');else if(getenv('HTTP_FORWARDED_FOR'))$ipaddress = getenv('HTTP_FORWARDED_FOR');else if(getenv('HTTP_FORWARDED'))$ipaddress = getenv('HTTP_FORWARDED');else if(getenv('REMOTE_ADDR'))$ipaddress = getenv('REMOTE_ADDR');else$ipaddress = 'UNKNOWN';return $ipaddress;
}function get_nearest_timezone($cur_lat, $cur_long, $country_code = '') {$timezone_ids = ($country_code) ? \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $country_code): \DateTimeZone::listIdentifiers();if($timezone_ids && is_array($timezone_ids) && isset($timezone_ids[0])) {$time_zone = '';$tz_distance = 0;//only one identifier?if (count($timezone_ids) == 1) {$time_zone = $timezone_ids[0];} else {foreach($timezone_ids as $timezone_id) {$timezone = new \DateTimeZone($timezone_id);$location = $timezone->getLocation();$tz_lat = $location['latitude'];$tz_long = $location['longitude'];$theta = $cur_long - $tz_long;$distance = (sin(deg2rad($cur_lat)) * sin(deg2rad($tz_lat)))+ (cos(deg2rad($cur_lat)) * cos(deg2rad($tz_lat)) * cos(deg2rad($theta)));$distance = acos($distance);$distance = abs(rad2deg($distance));// echo '<br />'.$timezone_id.' '.$distance;if (!$time_zone || $tz_distance > $distance) {$time_zone = $timezone_id;$tz_distance = $distance;}}}return $time_zone;}}
方法2
调用API https://ipapi.co/178.237.33.50/timezone
根据ip地址获取时区相关推荐
- C# 网络编程之通过ip地址获取地理位置(补充)
前面我写过一篇文章"C# 网络编程之获取本机名.ip地址.域名.物理位置"里面可以根据输入的网址根据其ip地址获取器物理位置,其中该部分主要代码是通过有道网提供的在线第三方接口实现 ...
- Python根据IP地址获取MAC地址
Python3根据IP地址获取MAC地址(不能获取本机IP,可以获取与本机同局域网设备IP的MAC) main.py #!/usr/bin/env python3 # -*- coding: utf- ...
- JAVA程序 通过IP地址 获取MAC地址
转载自:https://blog.csdn.net/chwshuang/article/details/46958719 叙述 我们都知道通过在电脑上敲 cmd 后,输入ipconfig -all 来 ...
- js通过IP地址获取所在城市
话不多说,直接贴代码! 将这段代码运行一下就OK了: <html xmlns="http://www.w3.org/1999/xhtml"> <head runa ...
- 6种根据IP地址获取相应城市信息的接口
发这篇文章的最主要的目的就是给大家分享一个 免费快捷根据IP地址获取相应城市信息的接口--腾讯接口 在找到个腾讯接口之前,我试也用了很多接口,比如:淘宝,新浪等,下面挨个介绍 (ps:$ip是IP地址 ...
- java根据ip地址获取城市地域信息
java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?ip=123.139.9 ...
- 根据ip地址获取城市名的几种方法
2019独角兽企业重金招聘Python工程师标准>>> 在某些场景下,可能需要用到根据ip地址获取ip所对应的城市名. 貌似腾讯.百度等开放接口已经失效或者免费服务接口关闭等原因,很 ...
- 根据IP地址获取物理位置
1.导入maven坐标 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all&l ...
- java 根据IP地址获取地理位置
来源:http://www.ipplus360.com/tech/api/ 来源:http://blog.csdn.net/Cryhelyxx/article/details/40862101 精确查 ...
- python 通过ip获取城市_如何根据普通ip地址获取当前地理位置
前言: 我们现在需要做的功能是根据ip地址获取当前地理位置,是Web 服务API,获取后的位置信息一般是城市级别的,不是很精确的那种获取. (1)开发者需要做的准备工作: 需要登录百度地图的api,点 ...
最新文章
- java ee开发技术 上海大学_学院介绍
- 加载Hadoop+spark镜像文件需要修改的配置文件
- 信息系统项目管理师优秀论文:论信息系统范围管理
- python之if经典语句_Python之if语句、字典
- git依赖python_python爬虫之git的安装
- python计算工资编程-Python实现扣除个人税后的工资计算器示例
- 数据结构—快速排序及其实现思想分而治之DC(思维导图版)
- [USACO08JAN]牛大赛Cow Contest
- java zip4j 内存文件和磁盘文件 压缩和加密
- 程序员除了写代码,还应重视哪些方面?
- cad批量打印_CAD插件——批量打印软件安装包+安装教程
- PROTELL99se复制粘贴功能(元件库)
- HTML静态网页我的家乡,html网站家乡 !
- 电子罗盘在终端的应用
- ps3 移动硬盘 安装linux,ps3内置硬盘安装方法
- 中国超级城市的新变局
- Spamhaus -影响最大的RBL(实时黑名单列表)服务提供商,非营利性组织
- 失业登记对养老保险是否有影响
- 机器学习---推荐系统效果评估NDCG
- 简单温习一下快速排序
热门文章
- easyphp 12 mysql 启动_easyphp使用教程
- PAT乙级1068 万绿丛中一点红(测试点3、测试点5)
- 简述程序化交易的优缺点都是什么?
- python对excel操作简书_Python-Excel操作
- 如何在命令行下用命令slmgr激活windows8系统
- iPad 生产力指南:如何把MathType7安装在iPad中,方便写公式,写论文,公式编辑器,完全免费
- MeshBaker插件 使用套路
- ocm认证年薪多少_年薪 100 万在 IT 行业中,属于什么水平 ?
- Origin绘图时出现Speed Mode is on水印解决方式
- linux根文件系统与内核合二为一