2013-07-02 8 views
5

私のサイトは現在、すべてのdatetime変数を-1時間として表示しています...私はCodeigniterを初めて使用しています!それはまだ-1時間として見せて、Codeigniter timezone mysqlの設定

だから、私は

/* 
|--------------------------------------------------------------- 
| DEFAULT TIMEZONE 
|--------------------------------------------------------------- 
| 
| Set the default timezone for date/time functions to use if 
| none is set on the server. 
| 
*/ 

if(! ini_get('date.timezone')) 
{ 
    date_default_timezone_set('GMT'); 
} 

しかし、私のメインのindex.phpファイルに次のコードが含まれている(前にこの問題を抱えていたことはありません)ので、私は私が必要と仮定していますMySQLのデフォルト設定のいくつかの並べ替え...私は私のモデルに次のコード行が含まれている

設定するには:静止

function __construct() 
    { 
     // Call the Model constructor 
     parent::__construct(); 
     $this->db->query("SET time_zone='+0:00'"); 
    } 

違いはありませんが...助けて!

私のコードは次のとおりです。

<h3><?=date('D, jS F @ g:ia', strtotime($row->datetime))?></h3> 

ます$ row->日時変数は私のMySQLデータベースからDATETIME列値以外の何ものでもありません。ビュー内のエコー変数はいつも私のデータベースの値より1時間少ないです...

私のモデルコードは次のとおりです。

function coming_up() 
{ 
    $this->db->query("SET time_zone='+0:00'"); 
$query = $this->db->query('SELECT * FROM events1 WHERE datetime >= NOW() ORDER BY datetime LIMIT 2'); 
return $query->result(); 
} 

答えて

2

は、それが私のために働いている、あなたのconfig fileでこれらの行を追加して確認してください

$config['time_reference'] = 'gmt';# Default should be GMT 
date_default_timezone_set('UTC');# Add this line after creating timezone to GMT for reflecting 
+0

私は怖い変更なし...後@Rohanクマーが – user2505513

+0

あなたをチェック 'それが必要query'挿入"$ this-> db-> query(" INSERT INTO TABLE SET time_zone = '+ 0:00' "); ' –

+0

のようになります。上記を参照して、クエリコードを含めるように投稿を編集しました@Rohan Kumar差! – user2505513

11

config/autoload.phpでは、各ページの読み込み時にモデルを設定します。 $ this-> db-> query( "SET time_zone = '+ 0:00'")を呼び出します。そのモデルのコンストラクタで

設定/ autoload.php

$オートロード[ 'モデル'] =配列( 'default_model'); //元のために、アプリケーションにおいて

"を default_model言います"/models、 "default_model.php"という名前の新しいモデルファイルを作成し、以下のコードを追加します。

アプリケーション/モデル/ default_model.php

クラスDefault_modelがCI_Model各ページ負荷に{

function __construct() 
{ 
    // Call the Model constructor 
    parent::__construct(); 
    $this->db->query("SET time_zone='+0:00'"); 
} 
    } 

を拡張し、このコンストラクタが呼び出され、MySQLのタイムゾーンは、に設定されます+0:00。

+0

DSTに対処する必要がある場合は、名前付きゾーン '$ this-> db-> query(" SET time_zone = 'America/Chicago' "); ** note **が必要ですmysqlのタイムゾーン設定[mysql_tzinfo_to_sql](http://dev.mysql.com/doc/refman/5.1/en/mysql-tzinfo-to-sql.html) – zerodahero

+0

これは素晴らしいです、ありがとう! –

+0

define_( 'BASEPATH')またはexit( '直接スクリプトアクセスが許可されていません。')行の直下に、 'date_default_timezone_set( 'TIMEZONE_SET_FOR_DATABASE');'のようなものをapplication/config/config.phpに追加することもお勧めします。 '); ' –

-4

あなたは上部のプロジェクトフォルダ内のindex.phpファイルに設定することができ、<?php

<?php 
date_default_timezone_set('Asia/Bangkok');