如何在代码中设置时区?

2022-08-30 09:43:35

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

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

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

答案 1

将其放在配置.php上面的基本url上也可以工作date_default_timezone_set('Asia/Kolkata');

PHP 支持的时区列表

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>";
 }

答案 2

如果你正在寻找整个项目中的球状设置时区,那么你可以设置它CI文件application/config.php

$config['time_reference'] = 'Asia/Dubai';

推荐