繁体   English   中英

如何在codeigniter中设置时区?

[英]How to set time zone in codeigniter?

我正在使用 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'); 在 config.php 上面的基本 url 上也有效

PHP支持的时区列表

应用程序/配置/config.php

<?php

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

date_default_timezone_set('Asia/Kolkata');

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

创建一个 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>";
 }

如果你想在整个项目中全局设置时区,那么你可以设置它 CI application/config.php文件

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

在 codeigniter 文件夹的主index.php中添加这一行

date_default_timezone_set('Asia/Kolkata');

你可以试试这个:

date_default_timezone_set('Asia/Kolkata');

application/config.phpapplication/autoload.php

有这样的:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

date_default_timezone_set('Asia/Kolkata');

它对我来说很好用,我认为这是在 codeignitor 中定义 DEFAULT TIMEZONE 的最佳方式

将此行添加到应用程序文件夹中的 autoload.php 中:

$autoload['time_zone'] = date_default_timezone_set('Asia/Kolkata');

作为描述在这里

  1. 打开你的php.ini文件(寻找它)

  2. 在文件顶部添加以下代码行:

    date.timezone = "US/Central"

  3. 通过转到phpinfo.php验证更改

将它添加到您的index.php文件中,它将在您的整个站点上运行

if ( function_exists( 'date_default_timezone_set' ) ) {
    date_default_timezone_set('Asia/Kolkata');
}

将它添加到您的 project/application/config/config.php 文件中,它将在您的整个站点上运行。

date_default_timezone_set('Asia/Kolkata');

在 application/config 文件夹中,获取文件 config.php 并检查以下内容:

$config['time_reference'] = '';

将值更改为您的首选时区。 例如将时区设置为肯尼亚内罗毕: $config['time_reference'] = 'Africa/Nairobi';

将它放在config/config.php ,它将适用于整个应用程序或 codeigniter 的index.php

将它添加到您的project/index.php文件中,它将在您的整个站点上运行。

date_default_timezone_set('亚洲/喀布尔');

如何在 CodeIgniter 4 中设置默认时区

浏览并编辑

/app/Config/App.php

在第 103 行你会发现

public $appTimezone = 'America/Chicago';

您可以更改为支持时区列表中可用的任何时

http://php.net/manual/en/timezones.php

在 CI4 中,您可以在项目根目录中使用 .env 文件(手动创建)。 参考Codeigniter4 环境变量

app.appTimezone = "Asia/Kolkata"

您可以在application/autoload.php 中找到“time_zone”字符串

$autoload['time_zone'] = date_default_timezone_set('America/Toronto'); 

这对我有用。 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM