Wordpress v3.0 之 Timezone 無法正確設定?



近一週更新 Wordpress v3.0後,發現 wp-vistors 套件中的時區紀錄錯誤(由UTC+8改成UTc)?!

在開始使用時,因為 wp-vistors 套件直接使用 php date() 函數紀錄日期,雖然在 Wordpress 中可設定 Timezone,但似乎是沒有作用,於是改在 PHP.ini 設定檔內中的 [Date] date.timezone = Asia / Taipei 做時區設定後就可以正確運作。

但在更新 Wordpress v3.0 後發現這些設定皆失效了,懷疑是 wordpress 系統運作時,會影響 php date() 函數的時區設定(見附註一),在上網搜尋後發現許多人也有相同的問題!

解決的方式如下:

  1. 修改wp-includes/functions.php:增加下列指令在第一行
    1. date_default_timezone_set( ‘Asia/Taipei’ );
  2. 修改wp-content/wp-settings.php第30到32行
    1. // Set default timezone in PHP 5.
    2. if ( function_exists( ‘date_default_timezone_set’ ) )
    3. date_default_timezone_set( ‘Asia/Taipei’ ); // UTC

附註一:獨立寫一段顯示時區程式可發現 PHP.ini 的設定是有效的!

  1. <?php
  2.     echo "今天日期:";echo  date("Y-m-d");echo "<br/>";
  3.     echo "目前時間:";echo  date("H:i:s");echo "<br/>";
  4. ?>

參考資料:

  1. WordPress 3.0與PHP 5的時區問題
  2. wordpress 2.7.1 ~ 2.8.1 vs PHP 5.3.0 問題

Leave a Reply

CAPTCHA 驗證圖片
更換一張圖片