Provides a well tested set of interfaces and value objects for interacting with Google's Timezone API
The only supported method of installation is via composer.
This client requires a PSR-18 Http Client and PSR-17 Factory implementations. These implementations are not required by composer, so you will need to ensure you have them installed, for example,
composer require php-http/curl-client laminas/laminas-diactoros gsteel/google-timezone
The TimeZone API requires an API key from Google
<?php
use DateTimeImmutable;
use GSteel\GoogleTimezone\Coordinates;
use GSteel\GoogleTimezone\HttpClient;
use Http\Client\Curl\Client;
use Laminas\Diactoros\RequestFactory;
use Laminas\Diactoros\UriFactory;
$apiKey = 'Some API Key';
$client = new HttpClient(
$apiKey,
new Client(),
new UriFactory(),
new RequestFactory()
);
$primeMeridian = '51.47,-0.00';
$referenceDate = DateTimeImmutable::createFromFormat('!Y-m-d', '2020-01-01');
$result = $this->client->fetch(
Coordinates::fromString($primeMeridian),
$referenceDate
);
assert($result->isSuccess()); // true
echo $result->timezone()->getName(); // "Europe/London"
$result->isReferenceDateDst(); // false
echo $result->name(); // "Greenwich Mean Time"
…is welcomed. Please make sure your patch passes CI :)