如何使用php time()获取用户的本地时间,还是有其他方法可以实现? 这意味着它将在他们的时区。
我需要用用户当地时间计算时间,这里是我之前发现的一个很好的脚本功能:
<?php
function timeago($time)
{
$periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
$lengths = array("60","60","24","7","4.35","12","10");
$now = time();
$difference = $now - $time;
$tense = "ago";
for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++)
{
$difference /= $lengths[$j];
}
$difference = round($difference);
if($difference != 1)
{
$periods[$j].= "s";
}
return "$difference $periods[$j] $tense";
}
?>
<?php
$date = strtotime('2012-04-15 07:41:03');
$datep = timeago($date);
echo $datep;
?>
从上面的脚本中,我使用time()但它只获得我的服务器时间而不是我身边的本地时间。我怎样才能获得当地时间(用户的当地时间)?
答案 0 :(得分:1)
我不确定总是可以从服务器获取本地时间,而客户端不会向您传递信息 - javascript就是一个很好的例子。我这样做的方式(不是我的想法,在某处阅读)是用javascript设置本地时间cookie并让PHP读取cookie然后将该数据与date_default_timezone_set()一起使用。我认为这是唯一的防弹措施,它对我来说很好。
中读到的答案 1 :(得分:0)
最好的方法是做客户端。使用Javascript的Date函数,并将它们发送到PHP。
答案 2 :(得分:0)
没有基于服务器的/ PHP方法来获取本地时间。你必须通过Javascript从客户端获取它。 Google“bitbucket timezone detect”并使用它来设置“local_timezone”cookie,您可以从PHP读取并通过date_default_timezone_set()设置