Даты неверны с json, переданным как "jsonObject.toString ()" - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть компонент графика, написанный на javascript с использованием canvas.Вы можете обновить его значения, если передадите ему действительный массив json с датами в сочетании с ценами на эту дату (подсвечники торговли акциями).

jsonArray, который я пытаюсь заполнить по этому вызову, обычно создается за счет создания новых датв js - но есть ли способ отправить мой jsonArray по проводам (из Primefaces) таким образом, чтобы даты интерпретировались как даты?

Когда я использую

PrimeFaces.current().executeScript("myFunction(" + jsonObject.toString() + ")");

Даты, которые приходят по проводам, становятся длинными цифрами, которые, я думаю, являются количеством миллисекунд с 1970 года. Что я могу сделать, чтобы отправить это (довольно большое) jsonarray и его даты интерпретируются как даты?(они терпят неудачу при вызове date.getMonth (), потому что это числа, а не даты).

При создании jsonArray на стороне сервера я делаю следующее, что выглядит неправильно, потому что getTime () возвращаетдолго.Так, как даты будут должным образом обработаны здесь?

json.addProperty("date", data.getKey().getTs().getTime());

1 Ответ

0 голосов
/ 25 февраля 2019

Функция, вызываемая с длинными значениями в качестве даты, была следующей.Как предложил Ultimater, пропустите этот объект через new Date() - который должен работать для объекта даты - а также через long, так что никакого вреда не будет!

dateToString(date, multiline) {

    if(date === null)
        return;

    // Added this
    date = new Date(date);

    var datestr = date.getMonth() + " " + date.getDay() + ", " + date.getFullYear();
...