myparcelcom/timezone-resolver
Composer 安装命令:
composer require myparcelcom/timezone-resolver
包简介
Resolves a local timezone from address data using the GeoNames API.
README 文档
README
A lightweight PHP package that resolves an IANA timezone identifier from address data, using the GeoNames API.
Requirements
- PHP 8.4+
- A free GeoNames account with the web services enabled
Installation
composer require myparcelcom/timezone-resolver
Usage
use MyParcelCom\TimezoneResolver\GeoNames; $resolver = new GeoNames(username: 'your-geonames-username'); $timezone = $resolver->getTimezone( countryCode: 'NL', postalCode: '1043NT', city: 'Amsterdam', ); // 'Europe/Amsterdam'
Method signature
public function getTimezone( string $countryCode, ?string $postalCode = null, ?string $city = null, ): ?string
- Tries to resolve by
postalCodefirst. - Falls back to
cityif the postal code yields no results. - Returns
nullif no timezone can be determined.
Using the interface
Depend on TimezoneResolverInterface instead of the concrete class to keep your code decoupled:
use MyParcelCom\TimezoneResolver\TimezoneResolverInterface; class MyService { public function __construct( private readonly TimezoneResolverInterface $timezoneResolver, ) {} }
Configuration
The GeoNames username is passed directly to the constructor. In a Laravel application, bind the interface in a service provider:
use MyParcelCom\TimezoneResolver\GeoNames; use MyParcelCom\TimezoneResolver\TimezoneResolverInterface; $this->app->bind( TimezoneResolverInterface::class, fn () => new GeoNames(config('services.geonames.username')), );
// config/services.php 'geonames' => [ 'username' => env('GEONAMES_USERNAME'), ],
Testing
composer install vendor/bin/phpunit
License
Proprietary — © MyParcel.com
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2026-06-09