charlesportwoodii / geo-timezone
本包最新版本(1.0.3)没有可用的许可证信息。
PHP 库,用于根据特定位置和日期进行时区计算。
1.0.3
2017-09-28 10:24 UTC
Requires
- php: >=7.0
- ext-dom: >=7.0
- ext-mbstring: >=7.0
- ext-xml: >=7.0
- ext-zip: *
- guzzlehttp/guzzle: 6.3.0
- phayes/geophp: 1.2.*
- phpunit/phpunit: 5.7.4
This package is auto-updated.
Last update: 2024-08-29 04:48:50 UTC
README
基于node-geo-tz 包,此 PHP 库根据坐标(纬度,经度)和时间戳参考计算特定位置的时区。因此,此库还可以提供任何时刻特定位置的本地日期。此外,它基于由timezone-boundary-builder 工具提取的时区边界,因此必须始终使用此包的最新版本。为了通过边界改进时区搜索,node-geo-tz 建议通过迭代地将地球划分为象限和子象限来创建一个目录树。此树在参考库中称为 "data.zip"。
要求
运行库需要 GEOS PHP 扩展。因此,您应该运行 bin/compile-geos .sh 脚本进行下载和编译;然后,名为 "geos.so" 的库将被添加到 /usr/lib/php 中。如您所见,此脚本包含安装一些将在安装过程的下一步中必需的 PHP 扩展。
一旦您已编译了 GEOS PHP 扩展,您应该创建 geos.ini 文件以启用模块并相应地提高性能。
最后,您应该运行 composer 文件,这样就会安装其余必需的库。
使用方法
有两个主要类
- UpdaterData:下载时区边界数据的最新版本并创建目录树(data.zip)的脚本。这可能需要几个小时,因此您可以使用 node-geo-tz 的 "data.zip" 进行首次测试。否则,您可以通过运行 UpdaterData 脚本来获取最新版本并创建目录树。目标文件夹必须具有写入权限
use GeoTimeZone\UpdaterData; $updater = new UpdaterData("/path/to/data/"); $updater->updateData();
- Calculator:提供与特定纬度、经度和时间戳关联的时区名称或本地日期。
use GeoTimeZone\Calculator; $latitude = 39.452800; $longitude = -0.347038; $timestamp = 1469387760; $calculator = new Calculator("/path/to/data/"); // Local date $localDate = $calculator->getLocalDate($latitude, $longitude, $timestamp); /* DateTime Object ( [date] => 2016-07-24 21:16:00.000000 [timezone_type] => 3 [timezone] => Europe/Madrid ) */ // TimeZone name $timeZoneName = $calculator->getTimeZoneName($latitude, $longitude); //Europe/Madrid