Codeigniter TimeZoneタイムゾーン問題及びPHPタイムゾーン設定

1520 ワード

私はCodeigniterのフレームを使ってウェブサイトを構築して、date('Y-m-d h:i:s')を使って時間を取得してデータベースに保存しますが、今日発見しました。
タイムゾーンが間違っているため、時間と中国時間が一致しなくなりました。解決方法は普通2つあります。
(1)php.iniを修正する
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC
修正後にapacheを再起動すればいいです。
(2)ダテ()を使う前にダテを使うdefault_timezone_set(「アジア/Shanghai」)
中国地区には以下のようなパラメータが設置されています。
{ "cst",   0,  28800, "Asia/Chongqing"                },
{ "cst",   0,  28800, "Asia/Chungking"                },
{ "cst",   0,  28800, "Asia/Harbin"                   },
{ "cst",   0,  28800, "Asia/Kashgar"                  },
{ "cst",   0,  28800, "Asia/Macao"                    },
{ "cst",   0,  28800, "Asia/Macau"                    },
{ "cst",   0,  28800, "Asia/Shanghai"                 },
{ "cst",   0,  28800, "Asia/Taipei"                   },
{ "cst",   0,  28800, "Asia/Urumqi"                   },
{ "cst",   0,  28800, "PRC"                           },
{ "cst",   0,  28800, "ROC"                           },
しかし、codeigniterでは、dateを使うと、まだ時間が足りないことが分かります。だから、codeigniterには必ずタイムゾーンの設定があります。
ファイルのアプリ/config/MY_config.phpには以下のような設定があります。
date_に変えたらdefault_timezone_set(「アジア/Shanghai」)で結構です。