time() 是否独立于时区设置?

Nat*_*ate 3 php time timezone

我知道可以通过以下方法(也许更多)更改时区:

  1. putenv()在每个 php 文件中设置时区。
  2. date.timezone在 php.ini 中设置时区。
  3. php_value date.timezone在根 .htaccess 文件中设置时区。

我的问题是,设置时区是只影响date()功能,还是也影响time()功能?

我阅读了文档,但我仍然有点困惑..我认为答案是前者,但我需要确定,所以如果有人能确认这一点就太好了。

谢谢!

Jon*_*uhn 5

time() 不受时区影响。date 等函数,将结果日期转换为时区而不影响时间戳。

<?php
var_dump(date_default_timezone_get());

$time1 = time();
var_dump($time1);
var_dump(date("r", $time1));

date_default_timezone_set("America/Los_Angeles");
var_dump(date_default_timezone_get());

$time2 = time();
var_dump($time2);
var_dump(date("r", $time1));

var_dump($time1 === $time2);
Run Code Online (Sandbox Code Playgroud)

输出:

string(16) "Europe/Amsterdam"
int(1571676424)
string(31) "Mon, 21 Oct 2019 18:47:04 +0200"
string(19) "America/Los_Angeles"
int(1571676424)
string(31) "Mon, 21 Oct 2019 09:47:04 -0700"
bool(true)
Run Code Online (Sandbox Code Playgroud)

演示:https : //3v4l.org/Cggc3