我使用 Codeigniter 框架來搭建網站,使用 date ('Y-m-d h:i:s') 來獲取時間並存入數據庫,但是今天發現,存入的時間和我本地時間差好多。
因爲時區不對導致時間和中國時間不一致,解決辦法一般有兩種:
(1)修改php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC
修改後重啓 apache即可。
(2)在使用date() 之前使用date_default_timezone_set("Asia/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中一定有設置時區的配置。
查看發現: 文件 application/config/MY_config.php中有如下設置:
<?php
date_default_timezone_set('America/Los_Angeles');
只要改爲date_default_timezone_set("Asia/Shanghai")即可。