我有一个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
按钮时,我得到的值与我设置的值不同。这是一个屏幕证明:
可能有什么问题,我该如何解决?
修改
当我这样做时:
console.log(Ext.getCmp(id).getForm().getFieldValues());
我还在控制台中看到这个错误的值:
因此,问题不在于JSON.stringify
,而在于ExtJS
。
答案 0 :(得分:1)
当您调用JSON.stringify
方法时,Date
个对象转换为UTC
格式。您正在使用您的时区选择日期,当您将其序列化为JSON
时,您将获得没有时区的日期值。从警报信息我可以说你的时区是GMT +3。所以表格正在返回正确的价值。