如何使用PHP获取客户端时间:即我服务器在中国,客户在美国或其他合中国有时差的地方(地方可能很多,并且不确定),需要在用户使用浏览器上我的系统的时候查看出来的时间是他当地的时间。只用PHP,不要说什么JAVASCRIPT,纯PHP
我查了一下,貌似PHP没有现成的函数,是否可以自己写一个函数,例如先获取客户端的IP,然后再根据IP来查出时区,最后根据时区来格式化时间戳。等等,各位广开思路谢了!

解决方案 »

  1.   

    要用 JAVASCRIPT 将客户端 信息 返回到服务器吧?
    不能靠 服务器 去判断吧???
      

  2.   

    呵呵,楼主 b/s 架构都没搞懂,
    还"只用PHP,不要说什么JAVASCRIPT,纯PHP" 不怕人笑话嘛?
      

  3.   

    PHP是服务器端的脚本语言,它是不能直接操作客户端的事的,
    必须要客户端有相关的动作,才能获得
      

  4.   

    说的不明白吗?能用客户端语言还有必要来问吗?现在的需求就是只能用PHP
      

  5.   

    利用IP算出客户端所在的时区,在需要得到本地时间的地方使用date_default_timezone_set设置
      

  6.   

    大家可能误解你的意思了. 你这标题不该这样叫
    虽然可以根据ip获得大概的时区,但这个要和ip库对应,网上有这个库,也有这个函数,但不是好方法.本地php保存为时间戳,javascript 有函数把这个时间戳变成本地的时间.
      

  7.   

    <?php
    $t=time();
    echo $t."<br>";
    date_default_timezone_set('America/New_York');
    echo date("Y-m-d H:i:s",$t);
    echo "<br>";
    echo $t."<br>";
    date_default_timezone_set('Asia/Shanghai');
    echo date("Y-m-d H:i:s",$t);
    ?> 
      

  8.   

    为什么JS可以现实,你非得要用PHP绕一大弯来做呢?
    JS操作COOKIE试试啊
      

  9.   

    PHP 是服务器端语句,和客户端有啥关系????
      

  10.   

    //取得客户端时区
    <script type="text/javascript">
        var d = new Date();
        var localZone = d.getTimezoneOffset()/60;
    </script>//将服务器端时区写入js,存入客户端
    <?php
    $serverZone = 8;
    echo "<script lanaguage=\"javascript\">var serverZone = $serverZone;</script>";
    ?>//在输出日期的地方用js代替,电子计算客户端时间
    <?php
    //$time为服务器时间的秒数
    $time = 123456;
    echo "<script lanaguage=\"javascript\">document.write(new Date(((localZone - $serverZone) * 60 * 60 + $time) * 1000));</script>";
    ?>