日期不正确,并且传递的json是“ jsonObject.toString()”

时间:2019-02-24 22:52:36

标签: primefaces primefaces-extensions

我有一个使用javascript用JavaScript编写的图形组件。如果将有效的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 个答案:

答案 0 :(得分: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();