Recuperer l'heure locale du visiteur

cgershon Messages postés 288 Statut Membre -  
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je veux recuperer l'heure locale de mes visiteurs. ou savoir de quelle region du monde ils naviguent
comment recuperer cela ?
merci

A voir également:

5 réponses

avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Salut.

Les fonctions date() et time() en PHP retournent l'heure du serveur.
Pour récupérer l'heure du client, je pense qu'il faudra passer par du Javascript et l'envoyer avec AJAX.

Par exemple :
/* Fonction qui stocke le timestamp local dans $_SESSION['localTime'] */
function sendTimestamp() {
	var date = new Date();
	var timestamp = Math.floor(date.getTime() / 1000);

	var xhr = null;

	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return;
	}

	xhr.onreadystatechange = function() {
		if(xhr.readyState == 4 && (xhr.status == 0 || xhr.status == 200)) {
			return true;
		}
	};

	xhr.open('POST','recv_client_timestamp.php',true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send('timestamp='+timestamp);
}

Et le script recv_client_timestamp.php :
<?php
session_start();
$_SERVER['localTimestamp']['server'] = $_SERVER['REQUEST_TIME'];
$_SERVER['localTimestamp']['client'] = (int) $_POST['timestamp'];


Et la fonction pour récupérer le timestamp correcte :
<?php
session_start();

function getClientTimestamp() {
	$diff = $_SERVER['REQUEST_TIME'] - $_SESSION['localTimestamp']['server'];
	return $_SERVER['localTimestamp']['client'] + $diff;
}
2
Breub62 Messages postés 3452 Statut Membre 369
 
Au temps pour moi. Je pensais que ça retournait l'heure et date du client ;-)
0
Breub62 Messages postés 3452 Statut Membre 369
 
N'importe quelle fonction time() ou date() renvoie la date système du client. Après il faut voir via quel langage tu veux gérer tout ça...
0
cgershon Messages postés 288 Statut Membre 4
 
Merci avionf16
mais as-tu essaye ce que tu propose ou c'est simplement une suggestion non verifiee ?
0
cgershon Messages postés 288 Statut Membre 4
 
et puis comment attraper le pays du visiteur ? en php ou ajax ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
C'est une suggestion qui logiquement fonctionnne.
Je n'ai pas testé le code, il pourrait y avoir des fautes de frappe.
Pour la pays, il faudra passer par une base de données externe qui contient les plages d'IP.
0