如何在codeigniter中设置时区?

Vip*_*rma 41 php codeigniter

我正在使用codeigniter在php项目中工作.请告诉我为php和mysql设置时区的全局方式是什么.在哪个文件中我可以设置它.我想在没有php.ini和.htaccess文件的情况下设置它.

目前我在每个条目之前使用它 - :

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

Mr.*_* ED 79

将它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');
Run Code Online (Sandbox Code Playgroud)

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

创建一个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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

还要获取php中的时区列表

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

 foreach ($timezones as $timezone) 
 {
    echo $timezone;
    echo "</br>";
 }
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于一些愚蠢的共享主机,因为它们禁用了它,因此用户无法使用 *date_default_timezone_set* 更改时区,并且要更改它,您必须升级您的托管计划,这将是昂贵的。小心你购买的主机可能适得其反。 (2认同)

Gir*_*ish 7

如果您正在整个项目中查找全球设置时区,则可以将其设置为CI application/config.php文件

$config['time_reference'] = 'Asia/Dubai';
Run Code Online (Sandbox Code Playgroud)


Sat*_*aty 6

index.phpcodeigniter文件夹的主要部分中添加此行

date_default_timezone_set('Asia/Kolkata');
Run Code Online (Sandbox Code Playgroud)