codeigniter
CodeIgniterでタイムゾーンを設定する方法
サーチ…
CodeIgniterでタイムゾーンを設定する方法
date_default_timezone_set('Asia/Kolkata');
ベースURLの上のconfig.php
上でも動作します。
サポートされているタイムゾーンの PHP リスト
application / config.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
date_default_timezone_set('Asia/Kolkata');
私が役に立つと思った別の方法は、各ユーザーのタイムゾーンを設定する場合です。
MY_Controller.php
ファイルを作成します。user
テーブルに列を作成します。列には、タイムゾーンまたは任意の名前を付けることができます。そのように、ユーザーが自分のタイムゾーンを選択すると、ログイン時に自分のタイムゾーンに設定することができます。
アプリケーション/コア/ 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でタイムゾーンを設定する別の方法
Codeigniterでタイムゾーンを設定するには、日付ヘルパーを延長する方法があります。そのためには、以下の2つのステップの活動に従う必要があります。
- 日付ヘルパーを次の関数で拡張する:
if ( ! function_exists('now'))
{
/**
* Get "now" time
*
* Returns time() based on the timezone parameter or on the
* "time_reference" setting
*
* @param string
* @return int
*/
function now($timezone = NULL)
{
if (empty($timezone))
{
$timezone = config_item('time_reference');
}
if ($timezone === 'local' OR $timezone === date_default_timezone_get())
{
return time();
}
$datetime = new DateTime('now', new DateTimeZone($timezone));
sscanf($datetime->format('j-n-Y G:i:s'), '%d-%d-%d %d:%d:%d', $day, $month, $year, $hour, $minute, $second);
return mktime($hour, $minute, $second, $month, $day, $year);
}
}
- 次に、
config.php
のtime_reference
の値としてタイムゾーンを設定します:$config['time_reference'] = 'Asia/Dhaka';
これは、タイムゾーンを使用するためにすべて設定されています。
FYI:タイムゾーンリストのリストが最初の例で追加されました。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow