date_default_timezone_set()会影响time()吗?

时间:2013-05-17 09:00:22

标签: php date datetime timezone

如果我设置时区,请执行以下操作:

date_default_timezone_set('America/Los_Angeles');

它会影响time()的价值吗?

2 个答案:

答案 0 :(得分:4)

不,它没有。您的系统知道绝对时间。时间戳(time())表示绝对时间戳。时区设置仅影响由date()生成的人类可读时间格式,因为它们与地球上的特定位置相关(因为正午时它通常是太阳在天空中最高的时候,并且因地而异。)

答案 1 :(得分:3)

我不相信

  

返回自Unix Epoch(1970年1月1日00:00:00 GMT)以来秒数测量的当前时间。

最后注意GMT。

另请阅读php.net的第一条评论()

  

文档应该包含此信息。函数time()返回   始终是与时区无关的时间戳(= UTC)。

<?php 
date_default_timezone_set("UTC"); 
echo "UTC:".time(); 
echo "<br>"; 

date_default_timezone_set("Europe/Helsinki"); 
echo "Europe/Helsinki:".time(); 
echo "<br>"; 
?> 

字符串的本地时间可以通过mktime()获取strftime()和本地时间戳(如果需要)。