确定用户的时区 [英] Determine a User's Timezone

查看:173
本文介绍了确定用户的时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有什么标准的方式在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(NU​​LL);
}功能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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆