2011-03-03 118 views
0

目前我使用這行代碼如何從使用PHP的mysql數據庫檢索並顯示時間戳?

echo date("F j Y g:i:s", $row[date]); 

但它只是給我January 1 1970 2:33:31

我也希望它看起來正常的,因爲如果我不這樣做的date("F j Y g:i:s",可言,我得到的爲2011-03-02 23:00:30這是正確的日期,但查詢裏面一個很變態的方式顯示

+0

這個'date'值是如何存儲在MySQL中的?整數字段?炭/ VARCHART?日期?約會時間?給出你從PHP返回的內容,它以某種方式返回值爲2131的整數,這是1月1/70 2:33:31 – 2011-03-03 21:24:49

回答

5

強制轉換爲UNIX_TIMESTAMP:

SELECT UNIX_TIMESTAMP(YourDateField) FROM YourTable 

由於我在忽略這個問題時看到了對其他答案的回覆,請允許我詳細說明:

有兩種常見的日期類型。兩者實際上都是數字,表示自給定日期以來的持續時間。

  1. 一是自1900年以來的天數(浮點數) 。一天是一天。 分數是當天的一小部分。
  2. 其他是自1970年以來的秒數。這可以是一個int(整秒)或一個浮點數(包括小數秒)。

如果你有第一次約會,但把它當作第二種格式,那麼你需要計算幾秒鐘。自從1900年以來的111年,而不是自1970年以來的111秒。這就解釋了爲什麼你得到這個日期。

因此,請使用UNIX_TIMESTAMP函數,該函數將以秒爲單位將第一個浮點表示法轉換爲時間戳記。這是需要的,因爲這也是PHP使用的類型。

+0

的unix時間戳「UNIX_TIMESTAMP()」返回一個紀元日期(自1970年以來的秒數),它可以插入到日期('格式',$ val)「 – 2011-03-03 23:46:02

3

您可能需要使用的strtotime,日期函數預計,第二個參數是一個Unix時間戳

date("F j Y g:i:s", strtotime($row[date])); 

如果你想不同的格式,你可以看看這個頁面:Date formatting

你可能想要這樣的事情:

date("Y-m-d H:i:s", strtotime($row[date])); 
+0

它只是給了我這個仍然: 01/01/70 1970年1月1日2:00:00 – bzupnick 2011-03-03 21:14:40

+0

嘗試var_dump($ row [date] )我認爲你沒有從你的數據庫得到一個有效的日期,也許你應該嘗試$ row ['date'](帶引號) – Michael 2011-03-03 21:16:20

+0

引號沒有幫助,你是什麼意思的var_dump?那是做什麼的? – bzupnick 2011-03-03 21:19:35

相關問題