PHP偏移日期()结果基于用户的时区?

时间:2012-08-22 02:57:43

标签: php date timezone

我在使用time()函数在数据库中的网站上发生事件时存储,并使用date()函数回显它们。

我唯一的问题是它将它作为UTC回应,但如果我的用户在世界其他地方怎么办?我如何检测他们的时区并将其传递给date()函数?

这甚至可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,如果您更喜欢会话方式,请在用户登录表单中放置一个隐藏字段,并使用JS为其赋值。简单说明:

<form>
<input type="text" name="username">
<input type="password" name="password">
<input type="hidden" name="offset" id="offset">
</form>
<script language="JavaScript">
document.getElementById("offset").value=(new Date).getTimezoneOffset();
</script>

在PHP方面,像这样操纵date的结果:

$_SESSION["offset"]=intval($_GET["offset"]);
/*works here...*/
$date=date("Y-m-d",time()-($_SESSION["offset"]*60));

如果你想以所有客户的方式做到这一点,也可以使用Date().getTimezoneOffset()来操纵结果。

MDN Document