在新灌好的 Debian Wheezy 跑 PHP, 发现时间是错误的, 但是 Linux 的 Timezone 设置都正确.
于 Debian / Ubuntu Linux 设置正确 timezone + 时间, 可用下述步骤:
dpkg-reconfigure tzdata # 选 Asia -> Taipei
ntpdate time.stdtime.gov.tw
Local time is now: Thu Jul 25 14:35:17 CST 2013.
Universal Time is now: Thu Jul 25 06:35:17 UTC 2013.
但是设置完后, 于 PHP 的 timezone 都还是 Universal Time 的时间.
PHP 时区错误 强制设置修正
抓 PHP 设置的时间值来看, 会发现是设置到 "Asia/Chongqing"
echo date_default_timezone_get(); // Asia/Chongqing
?>
解法1:
使用 date_default_timezone_set() 强制设置 "Asia/Taipei".
echo date('Y-m-d H:i:s');
2013-07-25 06:39:27
date_default_timezone_set('Asia/Taipei');
echo date('Y-m-d H:i:s');
2013-07-25 14:39:27
?>
解法2:
设置 php.ini (于 Debian / Ubuntu 把 php.ini 分成 apache / cgi / cli 各自的 php.ini), 所以采用下述设置比较方便:
vim /etc/php5/conf.d/date_timezone.ini # 于此文件加下述
date.timezone = "Asia/Taipei"
相关网页