带时间戳0的PHP Date返回1小时


PHP Date with Timestamp zero returns 1 Hour

如果我这样做:

date("H:i:s", 0);

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

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

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

date_default_timezone_set('UTC');
echo date("H:i:s", 0);

实际操作

如果您正在进行时区敏感的操作,请不要忘记设置它。

或:

这是另一种方法,使用DateTime():

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

实际操作

gmdate()函数代替date()函数