如何在PHP中获取本地时区?

10
我正在使用date("D, m/d/Y h:i:s A T")函数来获取当前日期时间,但返回的时间与我在Linux bash命令中生成的时间不同(本地时间为CST,而php date函数返回的时间为UTC)。我尝试使用$timezone = @system("date +%Z",$retval);来获取时区,并尝试使用date_default_timezone_set()函数设置本地时区。但是,CST似乎不是一个有效的时区标识符。
简而言之,我只需要获取与本地日期时间相同的日期和时间。

2
请不要再在您的帖子中签名。 - Lightness Races in Orbit
好的。我不知道它是被禁止的。 - Steve
3个回答

13

使用http://php.net/manual/en/timezones.php中的时区。

因此,要使用CST,请使用:

<?php
date_default_timezone_set("America/Chicago");

如果您只拥有时区缩写而不是时区ID,则使用以下代码:

<?php
date_default_timezone_set(timezone_name_from_abbr("CST"));

+1,因为你是第一个。请注意,用户可能不是芝加哥。虽然确实是CT,但最好使用您特定的区域设置。 - Jason McCreary
问题是我需要以编程方式完成,因此每次需要它时我都不能复制完全有效的时区标识符。我唯一拥有的值是CST或UTC等... - Steve
@StephaneKouakou 我已经添加了示例代码,用于仅具有时区缩写的情况。 - Christopher Manning
1
我认为我找到了一个更好的函数:timezone_name_from_abbr()。 - Steve
1
如果您想从*nix服务器中获取默认值,则timezone_name_from_abbr(exec('date +%Z'))可以避免您拥有静态条目。 - Praesagus

2

0

我认为我找到了一个更好的函数:timezone_name_from_abbr()


如果这个答案是正确的,请将其标记为正确答案。 - rvighne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接