一尘不染

如何在Codeigniter中设置时区?

php

我正在使用codeigniter在php项目中。请告诉我为php和mysql设置时区的全局方法是什么。我可以在哪个文件中进行设置。我想将其设置为不包含php.ini和.htaccess文件。

目前我在每次输入之前都在使用它-:

date_default_timezone_set("Asia/Kolkata");
$time =  Date('Y-m-d h:i:s');

阅读 516

收藏
2020-05-29

共1个答案

一尘不染

将其放置date_default_timezone_set('Asia/Kolkata');在基本网址上方的config.php上也可以

PHP 支持的时区列表

application / config.php

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

date_default_timezone_set('Asia/Kolkata');

我发现使用满的另一种方法是,如果您希望为每个用户设置时区

创建一个MY_Controller.php

在用户表中创建一列,您可以将其命名为时区或任何您想要的名称。这样,当用户选择他的时区时,可以将其设置为登录时的时区。

application / core / MY_Controller.php

<?php

class MY_Controller extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->set_timezone();
    }

    public function set_timezone() {
        if ($this->session->userdata('user_id')) {
            $this->db->select('timezone');
            $this->db->from($this->db->dbprefix . 'user');
            $this->db->where('user_id', $this->session->userdata('user_id'));
            $query = $this->db->get();
            if ($query->num_rows() > 0) {
                date_default_timezone_set($query->row()->timezone);
            } else {
                return false;
            }
        }
    }
}

还可以获取php中的时区列表

 $timezones =  DateTimeZone::listIdentifiers(DateTimeZone::ALL);

 foreach ($timezones as $timezone) 
 {
    echo $timezone;
    echo "</br>";
 }
2020-05-29