【问题标题】:Is time() independent of time zone settings?time() 是否独立于时区设置?
【发布时间】:2012-12-04 18:49:02
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: php time timezone


    【解决方案1】:

    time() 不受时区影响。日期等函数,将生成的日期转换为时区而不影响时间戳。

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

    输出:

    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)
    

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

    【讨论】:

      【解决方案2】:

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

      由于这是一个绝对时间点,从那时起经过的秒数(相对论目的除外)是明确的。无论任何时区设置如何,您都将获得相同的值。

      【讨论】:

        【解决方案3】:

        试试下面的例子:

        date_default_timezone_set("Europe/Paris");
        echo gmdate("H:i:s");
        echo "<br/>";
        echo date("H:i:s");
        echo "<br/>";
        echo time();
        
        echo "<br/>";
        echo "<br/>";
        
        date_default_timezone_set("Asia/Chungking");
        echo gmdate("H:i:s");
        echo "<br/>";
        echo date("H:i:s");
        echo "<br/>";
        echo time();
        
        echo "<br/>";
        echo "<br/>";
        

        显示:

        18:52:38
        19:52:38
        1354647158
        
        18:52:38
        02:52:38
        1354647159
        

        【讨论】:

          【解决方案4】:

          php time() 使用 GMT 计算时间,因此它与您设置的时区无关

          【讨论】:

            猜你喜欢
            • 2012-10-16
            • 2011-12-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-03
            • 1970-01-01
            • 2012-09-03
            相关资源
            最近更新 更多