如何在 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 />";
 }