确定用户的时区 [英] Determine a User's Timezone
本文介绍了确定用户的时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有什么标准的方式在Web服务器能够确定一个网页内的用户的时区呢?也许从 HTTP
头?用户代理字符串或部分?
解决方案
timezone.js:
函数ajaxpage(){
VAR URL =timezone.php;
VAR visitortime =新的日期();
VAR时间= visitortime.getTimezoneOffset()/ 60;
VAR page_request = FALSE; 如果(window.XMLHtt prequest){
page_request =新XMLHtt prequest();
}
否则,如果(window.ActiveXObject){
尝试{
page_request =新的ActiveXObject(MSXML2.XMLHTTP);
}
赶上(E){
尝试{
page_request =新的ActiveXObject(Microsoft.XMLHTTP);
}
赶上(E){
}
}
}
其他{
返回false;
} page_request.onreadystatechange =功能(){
loadpage(page_request,containerid);
} 如果(bustcachevar){
bustcacheparameter =(url.indexOf()=?! - 1)? &放大器;+新的Date()的getTime():?。+新的Date()的getTime();
} page_request.open(GET,网址+ bustcacheparameter +&放大器;时间=+时间,真正的);
page_request.send(NULL);
}功能loadpage(page_request,containerid){
如果(page_request.readyState == 4和及(page_request.status == 200 || window.location.href.indexOf(HTTP)== - 1)){
的document.write('< META HTTP-当量=刷新内容=0; URL = HTTP://example.com//>');
}
}
timezone.php:
< PHP
在session_start();
$ _SESSION ['时间'] = $ _GET ['时间'];
?>
当你想用它添加的onLoad =ajaxpage();
body标签,它应该引起时区存储在PHP会话变量 $ _ SESSION ['时间']
编辑:附:这是未经考验的。
Is there any standard way for a Web Server to be able to determine a user's timezone within a web page? Perhaps from a HTTP
header? Or part of the user-agent string?
解决方案
timezone.js:
function ajaxpage() {
var url = "timezone.php";
var visitortime = new Date();
var time = visitortime.getTimezoneOffset()/60;
var page_request = false;
if (window.XMLHttpRequest) {
page_request = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
else {
return false;
}
page_request.onreadystatechange = function() {
loadpage(page_request, containerid);
}
if (bustcachevar) {
bustcacheparameter=(url.indexOf("?")!=-1) ? "&"+new Date().getTime() : "?"+new Date().getTime();
}
page_request.open('GET', url+bustcacheparameter+"&time="+time, true);
page_request.send(null);
}
function loadpage(page_request, containerid) {
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
document.write('<meta http-equiv="refresh" content="0;url=http://example.com/"/>');
}
}
timezone.php:
<?php
session_start();
$_SESSION['time'] = $_GET['time'];
?>
When you want to use it add onLoad="ajaxpage();
to the body tag and it should cause the timezone to be stored in the PHP session variable $_SESSION['time']
Edit: P.S. This is untested.
这篇关于确定用户的时区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文