我使用time()
函数将我的站点上发生的事件存储在数据库中,并使用date()
函数回显它们。
我唯一的问题是,它将其作为UTC进行响应,但如果我的用户在世界其他地方呢?我如何检测他们的时区并将其传递给date()
函数?
这可能吗?
谢谢!
好的,如果您喜欢会话方式,请在用户登录表单中放置一个隐藏字段,并使用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文档