In PHP 8.1 and Laravel, you can use the geoip package to find the timezone based on the country and region. The package provides an easy-to-use interface to the MaxMind GeoIP databases.
First, you will need to install the geoip package by running the following command:
composer require geoip/geoip Then, you can use the following code to find the timezone based on the country and region:
use GeoIp2\Database\Reader;
$reader = new Reader(storage_path('app/GeoLite2-City.mmdb'));
$record = $reader->city('8.8.8.8');
$timezone = $record->location->timeZone;
You can also pass the IP address to the city() method, which will return the timezone for that IP address.
You can also use the following package for the same:
composer require torann/geoip
You can use the package’s timezone
method to get the time zone of an IP address
use Torann\GeoIP\Facades\GeoIP;
$timezone = GeoIP::timezone();
Both the above packages use the same GeoIP databases, so you can use either of them.
Note: you may have to configure the package, to point to the location of the GeoIP database file on your system.