使用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
}
如何获得实际的真实服务器时间?
答案 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;
}