PHP返回真正的服务器时间?

时间:2013-09-23 13:51:45

标签: php codeigniter time

使用codeigniter我有一个模型来处理与时间相关的功能。我使用date_default_timezone_set('Europe/London');以便所有时间函数都基于伦敦时间而不是服务器时间(基于美国)。但是,有时我需要知道服务器时间。我尝试在时区设置之前在构造中创建变量$server_time = time();,但是当我在函数中引用它时,我只返回伦敦时间。像这样......

function __construct(){
    parent::__construct();
    // server time
    $this->server_time = time(); 

    // set base time for all php time() functions!
    date_default_timezone_set('Europe/London');
}

public function serverTime(){
   return $this->server_time; // returns London time not server time
}

如何获得实际的真实服务器时间?

2 个答案:

答案 0 :(得分:2)

以下将在shell中执行date命令:

echo shell_exec( 'date' );

这将为您提供时间,就像您在服务器上的命令行中键入它一样;

答案 1 :(得分:0)

您将要存储两个时区之间的偏移量而不是实际的time()值:

function __construct(){
    parent::__construct();
    $diff_time = time(); 
    date_default_timezone_set('Europe/London');
    $this->diff_time = $diff_time-time(); 
}

public function serverTime(){
   return time()+$this->diff_time;
}