私は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');
をベースURLの上にあるconfig.phpに配置しても機能します
application/config.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
date_default_timezone_set('Asia/Kolkata');
私が完全に使用していることがわかった別の方法は、各ユーザーにタイムゾーンを設定したい場合です
MY_Controller.phpを作成します
ユーザーテーブルに列を作成します。タイムゾーンまたは任意の名前を付けることができます。そのため、ユーザーがタイムゾーンを選択するときに、ログイン時にタイムゾーンを設定できます。
application/core/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>";
}
Codeigniterフォルダーのメインindex.php
内にこの行を追加します
date_default_timezone_set('Asia/Kolkata');
プロジェクト全体でタイムゾーンを設定している場合は、CI application/config.php
ファイルを設定できます
$config['time_reference'] = 'Asia/Dubai';
アプリケーションフォルダーのautoload.phpに次の行を追加します。
$autoload['time_zone'] = date_default_timezone_set('Asia/Kolkata');
php.ini
ファイルを開きます(探します)
ファイルの先頭に次のコード行を追加します。
date.timezone = "US/Central"
phpinfo.php
に移動して、変更を確認します
index.phpファイルに追加すると、サイト全体で機能します
if ( function_exists( 'date_default_timezone_set' ) ) {
date_default_timezone_set('Asia/Kolkata');
}
これを試すことができます:
date_default_timezone_set('Asia/Kolkata');
application/config.php OR application/autoload.php
次のようになります。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
date_default_timezone_set('Asia/Kolkata');
私にとってはうまく機能しています。これはcodeignitorでDEFAULT TIMEZONEを定義する最良の方法だと思います。
config/config.php
に入れてください。アプリケーション全体またはcodeigniterのindex.php
で機能します。
project/index.phpファイルに追加すると、サイト全体で機能します。 date_default_timezone_set( 'Asia/kabul');
Project/application/config/config.phpファイルに追加すると、サイト全体で機能します。
date_default_timezone_set('Asia/Kolkata');