gpt4 book ai didi

php - 用户以本地时区查看

转载 作者:搜寻专家 更新时间:2023-10-31 21:35:17 24 4
gpt4 key购买 nike

我之前问过一个非常相似的问题,但没有得到任何有帮助的答案。

我有一个允许用户张贴笔记的网站。这些笔记上会有时间戳。我服务器上的默认时区是 EST5EDT(尽管我将 date.timezone 设置为其他内容,这是一个不同的问题!)。

据我所知,最好用服务器时间设置时间戳,并为每个用户转换它。例如:

User 1 (GMT) posts "Hello World" at (local time) 5:00 (server time) 0:00
User 2 (AEST, +10) sees that User 1 posted "Hello World" at (local time) 15:00

为了争论,我避免担心夏令时,因为我认为这无关紧要。

我知道我可以在我的应用程序中使用 date_default_timezone_set(),但我很确定我应该将发布时间设置为服务器时间,因此无需更改设置的时区。

我只想为查看者转换时间

"Post as Server Time, Read as Local Time"

我不相信我是第一个让他们的网络应用程序执行此操作的人,所以一定有答案。

我必须获取发布帖子的日期时间,获取查看帖子的用户的时区(可能通过 javascript,因为 php 使用服务器端日期和时间)并使用用户的时区转换日期时间。

javascript 中的

getTimezoneOffset() 将计算出用户与 UTC 的时间差,但不是我的服务器时间。

最佳答案

您可以做的是在保存时保存 UTC 时间,在查看时显示 UTC 时间 + 偏移量。这一切都可以在客户端使用 JS 来完成。

保存时使用的JS方法= UTC()

展示时使用的JS方法=

<html>
<head>
<script type="text/javascript">
function showDateInClientSideFormat(dValue)
{
var d = new Date()
var n = d.getTimezoneOffset();
var dateClientSide = new Date(dValue +n);
return dateClientSide;
}
</script>
</head>
<body>
<?php
echo '<script> showDateInClientSideFormat($dateSaved); </script>';
?>
</body>
</html>

PS:UTC 时间与 GMT 时间相同

关于php - 用户以本地时区查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com