2013-06-04 40 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');