Даты неверны с json, переданным как "jsonObject.toString()"

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

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

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

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

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

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

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

1 ответ

Решение

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

dateToString(date, multiline) {

    if(date === null)
        return;

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

    var datestr = date.getMonth() + " " + date.getDay() + ", " + date.getFullYear();
Другие вопросы по тегам