gpt4 book ai didi

php - 根据服务器 UTC 偏移量和用户 UTC 偏移量更改当前用户时区

转载 作者:可可西里 更新时间:2023-10-31 23:25:24 28 4
gpt4 key购买 nike

我正在用 PHP 编写一个 Twitter 网络服务。当用户登录时,我收到此节点:

<utc_offset>-18000</utc_offset>

我必须更改脚本的时区,以便它适应用户的实际时区。我为此找到的唯一 php 函数是: date_default_timezone_set($timezone_identifier) 但它不允许我使用 -18000 作为 $timezone_identifier 参数。

那么,我如何根据两个值更改当前用户时区:Server UTC offsetUser UTC offset

顺便说一句,这就是我获取服务器 UTC 偏移值的方式:

$this_tz_str = date_default_timezone_get();
$this_tz = new DateTimeZone($this_tz_str);
$now = new DateTime("now", $this_tz);
$offset = $this_tz->getOffset($now);

有什么想法吗?谢谢!

最佳答案

获取当前服务器时间

date_default_timezone_set(date_default_timezone_get());
echo date('Y-m-d H:i:s', time());

欧洲/巴黎的输出(我的服务器设置;UTC+2)

2011-04-12 20:39:43

通过偏移获取用户的时间

$user_offset = '-18000';
date_default_timezone_set('UTC');
$diff = "$user_offset seconds";
if ((substr($diff,0,1) != '+') && (substr($diff,0,1) != '-')) $diff = '+' . $diff;
$usertime = strtotime($diff, time());
echo date('Y-m-d H:i:s', $usertime);

输出 UTC-5(厄瓜多尔 -> 基多时间 NO DST),php 时区标识符 'America/Guayaquil'

2011-04-12 13:39:43

PHP.net 手册:

Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. (-43200 through 50400)

关于php - 根据服务器 UTC 偏移量和用户 UTC 偏移量更改当前用户时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5639733/

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