Warning: Cannot modify header information - headers already sent by (output started at /home/lalienoits/www/index.php:47) in /home/lalienoits/www/inc/cookie.php on line 6
a cadenza discontinua
Come se fossi
BLOG

[JS - PHP] - Localizzare data e ora per il nostro visitatote

A volte vi è la necessita di localizzare un certo orario e una certa data nel fuso orario dell'utenza che visita il nostro sito web. Per far ciò esistono due possibili strade:

  •  Localizzare l'IP facendo una richiesta a servizi del tipo geoip
    https://geoip.tools/v1/xml/?q=192.168.200.200
  • Utilizzare JS per captare il fusorario del browser.

In questa snippet utilizziamo JS e PHP per localizzare un determinato datetime rispetto all'orario dello stesso.

La componente JS, semplicemente memorizza l'informazione nei cookie che recuperiamo con PHP successivamente. 

$(document).ready(function(){
    var tz = jstz.determine(); 
    var timezone = tz.name(); 
	document.cookie = "timezone="+timezone;
});

In questo caso è inserito in jquery. Richiede ( )

Successivamente in PHP stabiliremo di default l'orario in cui i nostri datetime sono creati e successivamente recuperemo dai cookie il timezone preso dalla componente JS.

 

date_default_timezone_set('Europe/Rome');
if(isset($_COOKIE['timezone'])){ $userTimezone = $_COOKIE['timezone']; }


Fatto ciò tutti i datetime cui necessitano questo timo di localizzazione saranno così impostati:

$date = new DateTime($table["datetime"]);
$date->setTimezone(new DateTimeZone($userTimezone));

Per poi proseguire con la formattazione desiderata

echo $date->format('Y-m-d H:i');

Ciauz!


di GuiZ
22/08/2018

Commenta

We'll never share your email with anyone else.

Jamesnut - circa 3 anni fa
My partner and I stumbled over here coming from a different page and thought I should check things out.