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

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

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

最佳答案

将此date_default_timezone_set('Asia/Kolkata');放在基本URL上方的config.php上也可以

PHP List of Supported Time Zones

application/config/config.php

<?php

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

date_default_timezone_set('Asia/Kolkata');

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

创建一个MY_Controller.php

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

应用程序/核心/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>";
 }

10-04 22:02
查看更多