конвертировать метки времени эпохи Unix в метки времени JavaScript

0

У меня есть база данных с временными отметками эпохи 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, чтобы умножить метку времени (первый элемент) в каждой строке?

Теги:
highcharts

2 ответа

1
Лучший ответ
while($row=mysqli_fetch_row($result)){
    $row[0] = $row[0] * 1000; 
    $rows['data'][]=$row;
}
1

Если вы читаете строку базы данных на PHP только для передачи данных клиенту, и вы не используете данную timestamp где-либо еще в своем PHP-коде, рассмотрите возможность преобразования прямо в запросе SQL, например:

SELECT field, oter_field, timestamp * 1000 as timestamp... FROM...

Таким образом, вам не нужно загрязнять ваш PHP или JS-код конверсией.

В другом случае (если вам нужна эта метка времени для использования где-то еще в PHP), было бы лучше преобразовать метку времени перед отправкой ее на клиентскую сторону.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню