2012-08-11 57 views
0

可能重複:
Formating an SQL timestamp with PHP我怎樣才能把sql當前時間戳記和輸出爲php日期()?

我在SQL表中的列具有默認當前時間戳值。我正在嘗試使用date()以更易讀的格式輸出它。

然而,不管我用哪種格式,我總是得到相同的日期:1970-01-01 00:33:32

下面是從數據庫的當前時間戳的例子值:2012-08-09 06:37:58

下面是我使用的代碼嘗試將其「轉換」爲可讀格式:

$value['current_date']// is the var from the database.(containing 2012-08-09 06:37:58) 
$somevar = date('Y-m-d H:i:s', $value['current_date']); 

在此先感謝。

+0

感謝所有的人誰幫您現在可以使用任何日期格式代替'Y-m-d H:i:s'。 – 2012-08-11 02:59:54

回答

2

你的問題是你在第二個參數中使用了錯誤的值。 date() function需要UNIX風格的時間戳作爲第二個參數,而不是日期的字符串表示。使用strtotime() function糾正這一點:

$somevar = date('Y-m-d H:i:s', strtotime($value['current_date'])); 

正如別人指出的,但是,爲什麼你懶得做格式化?你想要的格式風格已經在數據庫中。它應該很容易:

echo $value['current_date']; 
+0

Jonah感謝您的幫助,TIMESTEMP - 當前timestemp作爲默認不使用UNIX風格? – 2012-08-11 02:52:03

+0

'TIMESTAMP'是一個MySQL類型;它與PHP中存在的類型(基本上)沒有關係。 'strtotime'函數會將TIMESTAMP值(本質上是一個字符串)轉換爲UNIX時間戳(整數)等價物。 – 2012-08-11 02:53:27

+0

jonah你的想法似乎工作 – 2012-08-11 02:56:53

0

首先:爲什麼格式化時間戳,如果它已經存在所需的格式?

關於實際的問題:

http://de2.php.net/manual/en/function.date.php

date()只接受UNIX時間戳(秒自1970-1-1 00:00:00 UTC)或沒有時間戳的。如果你想要一個像你有你需要與date_create()mktime,或strtotime

+0

Leon這只是我考慮過的所有嘗試之後使用安全措施的測試。 – 2012-08-11 02:56:06

0

的問題,您有是因爲date()的第二個參數應該是一個時間戳首先創建一個Unix時間戳和時間戳工作,並既然你傳遞的是包含2012-08-09 06:37:58的原始字符串,php不知道該怎麼做。

如下修改代碼,它應該工作:

$somevar = date('Y-m-d H:i:s', strtotime($value['current_date'])); 

如你所願

相關問題