簡體   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