PHP和Unix-Timestamp

时间:2015-09-15 03:24:52

标签: php unix-timestamp

如果我使用echo date('Y-m-d H:i:s', $unixTime)获取用户查看的时间和日期,是否会向用户显示GMT时间或与他所在地相符的时间?

我可以用这个: new DateTimeZone()并为用户设置时区。但是,如果我不这样做呢? PHP以某种方式知道用户的时区吗?

2 个答案:

答案 0 :(得分:1)

因为PHP是服务器端语言,所以文件中的任何PHP在被发送到客户端之前都会被处理。因此,日期函数将从其所在的任何服务器提取其信息,并将在服务器的时区中显示时间,而不管客户端(最终用户)所在的时区。如另一个答案所述,您可以设置默认时区,但这将保持设定状态,不会因客户而改变。

答案 1 :(得分:0)

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();