我有一个带有Unix纪元时间戳的数据库,我想在Highcharts图表中绘制这些值,这需要JavaScript日期时间戳(自1970年1月1日以来的毫秒数)。
数据库阵列目前如下所示:
data: [[1519395624,100],[1519395804,100],[1519395984,178],
转换后的数组如下所示:
data: [[1519395624000,100],[1519395804000,100],[1519395984000,178],
最好的方法是什么?可能的选择: (1)将每个数据库元素乘以1000 (2)在读取数据库行时,将PHP中的时间戳相乘 (3)乘以Highcharts格式化函数
中的时间戳我认为在PHP中读取数据库行时转换时间戳是最好的方法。我的PHP看起来像这样:
while($row=mysqli_fetch_row($result)){
$rows['data'][]=$row;
}
我应该如何更改while循环以将每一行中的时间戳(第一个元素)相乘?
答案 0 :(得分:1)
while($row=mysqli_fetch_row($result)){
$row[0] = $row[0] * 1000;
$rows['data'][]=$row;
}
答案 1 :(得分:1)
如果您正在阅读PHP中的数据库行只是为了将数据传输到客户端,并且您在PHP代码中的任何其他地方都没有使用给定的timestamp
,请考虑直接转换您的SQL请求如:
SELECT field, oter_field, timestamp * 1000 as timestamp ... FROM ...
因此,您不需要通过转换来污染您的PHP或JS代码。
在另一种情况下(如果你需要在PHP中的其他地方使用该时间戳),最好在将时间戳发送到客户端之前将其转换。