我遇到了时区问题。我在欧洲/华沙的VPS上设置了时区(UTC + 2(,我在VPS管理系统Plesk时区中设置了欧洲/华沙的时区,当我在PHP中使用例如time((时,返回的时间不正确(-2小时(。怎么办?
在PHP的文档网站上有一个非常好的评论,因为这些信息不在文档中,但应该立即回答你的问题。
函数 time(( 始终返回与时区无关的时间戳 (=UTC(。 有关更多信息,请查看此处。
正如Sammitch已经评论的那样,您不应该依赖time()
函数。有一个名为DateTime
的方便类,您可以使用它。
下面举几个例子:
$objDateTime = new DateTime();
//retrieve current Timezone
echo $objDateTime->getTimezone()->getName();
如果您在此处的时区不Europe/Warsaw
则有两种可能性可以更改它们:
在 PHP 中更改它.ini 你的php中有一个名为
[Date]
的部分.ini相应的设置称为date.timezone
。 只需将其设置为date.timezone = Europe/Warsaw
.您可以向当前
DateTime
对象添加Timezone
。
这看起来像:
$objDateTime->setTimezone(new DateTimeZone('Europe/Warsaw'));
echo $objDateTime->format('d.m.Y H:i:s');
仅此而已。