time()函数

时间:2011-08-09 11:15:28

标签: php time

time()返回自

以来的秒数测量的当前时间
  

Unix Epoch(1970年1月1日00:00:00 GMT)。

我的问题是:

  1. 是否与服务器时间有关?来自位于英国的服务器的time();输出是否与位于美国的服务器不同?或者unix时间是根据GMT计算的?
  2. 我正在计算当地时间,我有gmt抵消。我是否必须从unix时间添加GMT偏移量以找出当前的当地时间。

2 个答案:

答案 0 :(得分:2)

  1. Unix时代是一个固定的时刻,而不是本地时间,因此无论你身在何处,它们的秒数都是相同的。服务器时间仅影响服务器的时钟是否错误:)

  2. 如果用于显示日期的功能是时区感知并且配置正确,则您不应该关心GMT偏移:

    <?php
    
    $now = time();
    
    date_default_timezone_set('Europe/Madrid');
    echo date('Y-m-d H:i:s O e', $now) . PHP_EOL;
    
    date_default_timezone_set('America/Hermosillo');
    echo date('Y-m-d H:i:s O e', $now) . PHP_EOL;
    

    ...打印:

    2011-08-09 13:33:58 +0200 Europe/Madrid
    2011-08-09 04:33:58 -0700 America/Hermosillo
    

答案 1 :(得分:1)

the manual开头所述,在您的问题中,返回的时间是自 GMT 中的Unix Epoch以来的秒数。

这不是您当地的时间,您需要修改时区设置或将time()返回的值修改为您当地时间。