带有时间戳零的PHP日期返回1小时

Tob*_*ter 3 php timezone timestamp date

如果我执行以下操作:

date("H:i:s", 0);
Run Code Online (Sandbox Code Playgroud)

它返回01:00:00,而它应该00:00:00.
它可能与我的本地主机的时区有关吗?(UTC + 1)

如果是这样,我该如何解决这个问题呢?

Joh*_*nde 5

在呼叫前设置时区date().您将使用date_default_timezone_set():

date_default_timezone_set('UTC');
echo date("H:i:s", 0);
Run Code Online (Sandbox Code Playgroud)

看到它在行动

如果您正在进行时区敏感操作,请不要忘记将其重新设置.

要么:

以下是使用以下方法的替代方法DateTime():

$dt = new DateTime('@0', new DateTimeZone('UTC'));
echo $dt->format('H:i:s');
Run Code Online (Sandbox Code Playgroud)

看到它在行动