Are there any best practices for determining and utilizing visitor time zones in PHP?

When working with visitors from different time zones in PHP, it is important to accurately determine their time zone and display date and time information accordingly. One best practice is to use the visitor's IP address to determine their location and then fetch their time zone using a service like GeoIP. Once the time zone is determined, you can adjust the displayed date and time using PHP's DateTime class and setTimeZone() method.

// Get visitor's IP address
$ip = $_SERVER['REMOTE_ADDR'];

// Use GeoIP service to get visitor's time zone
$timezone = file_get_contents("http://ip-api.com/json/" . $ip)['timezone'];

// Create a new DateTime object
$date = new DateTime('now', new DateTimeZone('UTC'));

// Set the time zone to visitor's time zone
$date->setTimeZone(new DateTimeZone($timezone));

// Display the adjusted date and time
echo $date->format('Y-m-d H:i:s');