2013-06-04 38 views
0

我必須創建一個數組,每行的日期/時間。 我正在使用以下代碼。 「TIME_STAMP」是包含MySQL時間戳的字段(默認爲CURRENT_TIMESTAMP)。MySQL時間戳到日期/時間PHP:總是1/1/1 01:00

while ($row = mysql_fetch_array($result)) 
{ 
    $timestamp = strtotime($row["TIME_STAMP"]); 
    $x[] = sprintf("%s, %s", date ('j/n', $timestamp), date('H:i', $timestamp)); 
} 

如果我從MySQL客戶端做一個SELECT *一切正常:時戳是正確的:

2013年6月4日17點11分43秒

但是當我通過這個數組jpgraph的(以使水平軸)的所有記錄都顯示與

1/1 01:00

爲曲線圖中的代碼:

$graph = new Graph("1024", "800"); 
$graph->SetScale('textlin'); 
$graph->img-> SetMargin(60,40,40,110); 
$graph->xaxis->SetTickLabels($x); 
$graph->xgrid->Show(true); 

任何提示?

+1

如果你在第3行之前'echo $ row [「TIME_STAMP」];'',你會得到什麼? – Pudge601

+0

給我空白....發生了什麼? – user2452426

+0

您是否100%確定表的列名是'TIME_STAMP'? – Pudge601

回答

1

我的猜測是你正在處理的值是一個字符串,而不是一個實際的DateTime對象。您可能希望在將該字符串傳遞給下一步之前使用該字符串創建新的DateTime對象。

http://www.php.net/manual/en/function.date-create.php

+0

這不應該是問題,'strtotime'應該返回一個有效的時間戳,可以像上面那樣使用。例如'$ ts = strtotime('now + 1 day'); printf(「%s,%s」,日期('j/n',$ ts),日期('H:i',$ ts));' – Pudge601

+0

你讓我了!我不是PHP的傢伙,但每次我想我正在處理日期(在JS中),它開始是第一個時代,我知道我的日期不是真的日期:) – sugardave

+0

我在過去相同的代碼,它工作正常 – user2452426

0

固定

我的選擇查詢,並沒有包括 「TIME-STAMP」 領域;該圖稍後添加,但查詢未使用JpGraph的新屬性更新。

感謝任何人的幫助。

+0

在這種情況下,'$ row [「TIME_STAMP」]'應該觸​​發* undefined index *通知。您需要配置PHP來報告錯誤。 –

+0

無論如何,我在託管服務上運行(無法更改conf),這要感謝我迄今還不知道的暗示。 – user2452426

+0

1)您不必更改整個服務器的錯誤報告設置。 2)無論如何,你不應該在現場發展。 –

1

您有: $ graph-> SetScale('textlin');它應該是: $ graph-> SetScale('datlin');