1

如果我设置一个时区,例如:

date_default_timezone_set('America/Los_Angeles');

会影响价值time()吗?

4

2 回答 2

4

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

于 2013-05-17T09:04:04.380 回答
3

我不相信

返回自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来以秒数测量的当前时间。

注意最后的格林威治标准时间。

另请阅读php.net上关于 time()的第一条评论

文档应该有这个信息。函数 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>"; 
?> 

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

于 2013-05-17T09:03:57.153 回答