PHP and Unix-Timestamp


PHP and Unix-Timestamp

如果我使用echo date('Y-m-d H:i:s', $unixTime)来获取用户要查看的时间和日期,它向用户显示的是GMT时间,还是与他所在的地方兼容的时间?

我可以用这个:new DateTimeZone()并为用户设置时区。但如果我没有呢?PHP知道用户的时区吗?

因为PHP是一种服务器端语言,所以文件中的任何PHP都将在发送到客户机之前进行处理。因此,date函数将从它所在的任何服务器提取信息,并显示服务器所在时区的时间,而不管客户端(最终用户)所在的时区是什么。正如在另一个答案中提到的,您可以设置默认时区,但这将保持设置,并且不会根据客户端进行更改。

PHP使用ini设置作为默认时区,如果没有设置,运行时将产生一个警告。

http://php.net/manual/en/datetime.configuration.php

http://php.net/manual/en/function.date-default-timezone-get.php

您可以使用date_default_timezone_get()从ini中获取当前时区。

时间的推荐方法是使用DateTime对象,而特别是设置对象的时区。

// use statements for classes outside of our namespace
use DateTime;
use DateTimeZone;
// declare a new DateTime and get the current unix Timestamp
$dt = new DateTime("now", new DateTimeZone("GMT"));
echo $dt->getTimestamp();