我刚刚意识到为什么我的站点现在将所有日期时间变量显示为-1小时...我第一次使用Codeigniter!(以前从未遇到过这个问题)
因此,我在我的主index.php文件中包含了以下代码
/*
|---------------------------------------------------------------
| DEFAULT TIMEZONE
|---------------------------------------------------------------
|
| Set the default timezone for date/time functions to use if
| none is set on the server.
|
*/
if( ! ini_get('date.timezone') )
{
date_default_timezone_set('GMT');
}
但是,它仍然显示为-1小时,所以我假设我需要为MySQL设置某种默认设置...
我在我的模型中包含了以下代码行:
function __construct()
{
// Call the Model constructor
parent::__construct();
$this->db->query("SET time_zone='+0:00'");
}
还是没什么区别。帮助!
我的代码是:
<h3><?=date('D, jS F @ g:ia', strtotime($row->datetime))?></h3>
$row->datetime变量只不过是我的MySQL数据库中的一个DATETIME列值。视图中的回显变量总是比我的数据库中的值少1小时...
我的模型代码是:
function coming_up()
{
$this->db->query("SET time_zone='+0:00'");
$query = $this->db->query('SELECT * FROM events1 WHERE datetime >= NOW() ORDER BY datetime LIMIT 2');
return $query->result();
}
发布于 2013-07-02 21:30:11
在你的config file
中添加这些行,然后检查一下,它对我来说是有效的
$config['time_reference'] = 'gmt';# Default should be GMT
date_default_timezone_set('UTC');# Add this line after creating timezone to GMT for reflecting
发布于 2019-10-03 19:32:48
我也面临着这个问题。我试过这种方式..。
$this->db->query("SET LOCAL time_zone='Asia/Kolkata'");
$query="SELECT * FROM offers where NOW() between offfer_from and offer_to";
$res=$this->db->query($query);
它在我的项目中会工作得很好,而且我没有使用任何新的默认模型。如果你想要全局解决方案,你可以使用自动加载一些模型。
发布于 2021-01-21 14:58:47
为MySQL设置默认核心:转到: Your_Project/system/core/Model.php,然后更新此函数:
public function __construct() {
$this->db->query("SET time_zone='YOUR_TIME_ZONE'");
}
为PHP设置default_time_zone :转到Your_Project/index.php并在此处更新:
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
date_default_timezone_set('YOUR_TIME_ZONE');
https://stackoverflow.com/questions/17426887
复制相似问题