Даты неверны с 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();