如果我设置一个时区,例如:
date_default_timezone_set('America/Los_Angeles');
会影响价值time()
吗?
不,不是的。您的系统知道绝对时间。时间戳 ( time()
) 表示绝对时间戳。时区设置仅影响由 生成的人类可读的时间格式date()
,因为这些时间格式与地球上的特定位置相关(因为中午 12:00 通常是天空中太阳最高的时候,并且在不同位置之间有所不同)。
我不相信
返回自 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() 获取。