2012-09-15 25 views
1

我很難顯示正確的日期,實際上只有它的時間。檢索日期,休息7小時?

在DB的日期被存儲在這種形式:(由7小時的實際日期時間關閉)

即用於的一個日期值「2012-09-28 23點三十零分00秒」事件。

當我使用它這個腳本(Drupal的)檢索: $ttdate = $obj->field_date_test_value; $nttdate = strtotime($ttdate); $okdate = format_date($nttdate, $type = 'medium'); print $okdate;

...它工作正常,但時間是關閉的7小時。因此,不會顯示'週五,9/28/2012 - 4:30 pm'它顯示'週五,9/28/2012 - 11:30 pm'。

注意事件的頁面上,Drupal的檢索正確的時間...

我做了一些研究,我估計它與時區呢?但我有時區設置爲洛杉磯,所以我不太確定發生了什麼。也許是我的腳本?

+0

你在哪裏找到?你的服務器在哪裏? –

+0

@Paul Im位於cali市中心,不確定服務器位於何處。我認爲greengeeks網站說他們的數據中心位於伊利諾伊州芝加哥。 – migdesigns

+0

聽起來像數據庫配置爲使用GMT,但你在PDT。他們相隔7個小時。 – Barmar

回答

-1

嘗試在mysql中執行以下操作:

set time_zone = '-07:00'; 
+0

我在哪裏放置?在查詢中? – migdesigns

+0

只有在字段是'TIMESTAMP'字段時纔可以使用。它對'DATETIME'或'CHAR'字段沒有影響。 –

+0

在發送SELECT查詢之前,您應該將其作爲查詢發送到同一個連接上。 – Barmar

3

我假設你使用日期模塊。

這可能是因爲日期模塊將日期保存爲UTC並在渲染時更改輸出(使用format_date(),我認爲)。由於您沒有在自己的代碼中設置日期格式,即使事件頁面顯示正確的日期,您也會看到原始UTC時間(即PDT + 7小時)。

The bottom of this page說明如何在日期模塊中處理時區。我的猜測是,無論是第一種還是第三種情況都與您的情況相關。

+0

我在我自己的代碼中使用format_date()格式化日期。我想我也試過format_date($ nttdate,$ type ='medium',$ timezone ='America/Los_angeles');也沒有太多的運氣。 – migdesigns

+0

試試這個:format_date($ nttdate,$ type ='medium',$ format ='',$ timezone ='America/Los_Angeles')。這對我有用。 –