如何在 CodeIgniter 中设置时区

date_default_timezone_set('Asia/Kolkata'); 放置在基础 URL 上方的 config.php 上也可以。

PHP 支持的时区列表

应用程序/ config.php 文件

<?php

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

date_default_timezone_set('Asia/Kolkata');

我觉得有用的另一种方法是,如果你想为每个用户设置一个时区:

  • 创建 MY_Controller.php 文件。

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

应用/型芯/ 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 />";
 }