У меня есть база данных с временными отметками эпохи Unix, и я хотел бы построить эти значения в диаграмме Highcharts, которая требует отметки времени даты JavaScript (миллисекунды с 1 января 1970 года).
Массив базы данных в настоящий момент выглядит следующим образом:
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, чтобы умножить метку времени (первый элемент) в каждой строке?
while($row=mysqli_fetch_row($result)){
$row[0] = $row[0] * 1000;
$rows['data'][]=$row;
}
Если вы читаете строку базы данных на PHP только для передачи данных клиенту, и вы не используете данную timestamp
где-либо еще в своем PHP-коде, рассмотрите возможность преобразования прямо в запросе SQL, например:
SELECT field, oter_field, timestamp * 1000 as timestamp... FROM...
Таким образом, вам не нужно загрязнять ваш PHP или JS-код конверсией.
В другом случае (если вам нужна эта метка времени для использования где-то еще в PHP), было бы лучше преобразовать метку времени перед отправкой ее на клиентскую сторону.