表单返回ExtJS 6中日期字段的错误值

时间:2017-04-29 07:05:14

标签: javascript extjs

我有一个fiddle,它会再现看起来像一个bug。所以,这是我的HTML代码:

<div id="btn"></div>
<div id="datefield"></div>

然后我将ExtJS组件渲染到这些div中,如下所示:

    var id = Ext.id();
    Ext.create('Ext.Button',{
        text: 'Get value',
        renderTo: 'btn',
        handler: function () {
            alert(JSON.stringify(Ext.getCmp(id).getForm().getFieldValues()));
        }
    });
    Ext.create('Ext.form.Panel',{
        renderTo: 'datefield',
        id: id,
        items:[{
            xtype: "datefield",
            startDay:"1",
            format:"d.m.Y"
        }]
    });

当我将datefield值设置为当前日期并按Get value按钮时,我得到的值与我设置的值不同。这是一个屏幕证明:

enter image description here

可能有什么问题,我该如何解决?

修改

当我这样做时:

console.log(Ext.getCmp(id).getForm().getFieldValues());

我还在控制台中看到这个错误的值:

enter image description here

因此,问题不在于JSON.stringify,而在于ExtJS

1 个答案:

答案 0 :(得分:1)

当您调用JSON.stringify方法时,Date个对象转换为UTC格式。您正在使用您的时区选择日期,当您将其序列化为JSON时,您将获得没有时区的日期值。从警报信息我可以说你的时区是GMT +3。所以表格正在返回正确的价值。