将Unix纪元时间戳转换为JavaScript日期时间戳

时间:2018-02-23 16:31:25

标签: javascript php mysql highcharts

我有一个带有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循环以将每一行中的时间戳(第一个元素)相乘?

2 个答案:

答案 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中的其他地方使用该时间戳),最好在将时间戳发送到客户端之前将其转换。