如何使用PHP获取客户端时间:即我服务器在中国,客户在美国或其他合中国有时差的地方(地方可能很多,并且不确定),需要在用户使用浏览器上我的系统的时候查看出来的时间是他当地的时间。只用PHP,不要说什么JAVASCRIPT,纯PHP
我查了一下,貌似PHP没有现成的函数,是否可以自己写一个函数,例如先获取客户端的IP,然后再根据IP来查出时区,最后根据时区来格式化时间戳。等等,各位广开思路谢了!
我查了一下,貌似PHP没有现成的函数,是否可以自己写一个函数,例如先获取客户端的IP,然后再根据IP来查出时区,最后根据时区来格式化时间戳。等等,各位广开思路谢了!
不能靠 服务器 去判断吧???
还"只用PHP,不要说什么JAVASCRIPT,纯PHP" 不怕人笑话嘛?
必须要客户端有相关的动作,才能获得
虽然可以根据ip获得大概的时区,但这个要和ip库对应,网上有这个库,也有这个函数,但不是好方法.本地php保存为时间戳,javascript 有函数把这个时间戳变成本地的时间.
$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);
?>
JS操作COOKIE试试啊
<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>";
?>