最近的一个项目,使用cakephp1.2开发,用的Amazon的RDS数据库,不能设置timezone,没办法只能在程序中设置。
看了一下cake的源码,做了如下修改:
cake\libs\model\datasources\dbo\dbo_mysql.php 文件,添加如下方法:
/**
* Sets the database timezone
*
* @param string $tz Database timezone
*/
function setTimezone($tz) {
return $this->_execute('SET time_zone=' . $tz) != false;
}cake\libs\model\datasources\dbo\dbo_mysqli.php 文件,在connect方法中,return之前,添加如下2行:
if (!empty($config['timezone'])) {
$this->setTimezone($config['timezone']);
}现在,在database的config中添加timezone的配置就OK了:
'timezone'=>'+8:00'
本文介绍了如何在使用CakePHP 1.2开发的项目中,通过修改源码来实现对Amazon RDS数据库的时区设置。通过在数据库配置文件中添加时区配置项,并在连接方法中调用自定义的方法来设置时区,解决了不能直接设置时区的问题。

1万+

被折叠的 条评论
为什么被折叠?



