歡迎來到小豬圈!

2012-07-06

SQLite 預設時區為GMT

  • 若將 SQLite 資料庫裡的時間欄位,設為自動填入目前的時間(如下例),則預設時區一律是 GMT(+00:00) ,而非 php.ini 所設定的時區。
  • CREATE TABLE table_name
    (
      col_name DATETIME DEFAULT CURRENT_TIMESTAMP
    );
    
  • 解決方案之一是從 PHP 裡轉換:
  • <?php
    $get_datetime_form_sqlite = '2009-03-21 13:14';
    
    $myDateTime = new DateTime($get_datetime_form_sqlite, new DateTimeZone('GMT'));
    echo $myDateTime->format(DateTime::ISO8601);
    //output: 2009-03-21T13:14:00+0000
    
    $myDateTime->setTimezone(new DateTimeZone('Asia/Taipei'));
    echo $myDateTime->format(DateTime::ISO8601);
    //output: 2009-03-21T21:14:00+0800
    
  • 另外就是做 SQL 查詢時轉換:
  • SELECT datetime(col_name, 'localtime') FROM table_name;
    

No comments:

Post a Comment

Comment Form Message

標籤分類

Blog Archive

Labels

Google Analytics Tracking Code

About Me

My photo
Keelung, R.O.C, Taiwan
一個不學無術、混吃等死的傢伙…