2017-08-31 89 views
0

我使用Ext JS的V6.2电网,在我的应用程序,我已经DateTimeField字段,对于用户I显示日期格式Ext JS 6.2,如何将日期转换为sql格式:2017-08-25 16:34?

format: 'd/m/Y H:i' 

但在提交数据到SQL,我需要为SQL转换格式,

format: 2017-08-25 16:34 

这里是我的代码,我得到输出2016-03-14T18:30:00.000Z但我需要它作为format: 2017-08-25 16:34

如果我错了,请更正我的代码,我搜索了文档和其他没有帮助的东西。

var headerObj = page.getForm().getFieldValues(); 
var hdrData = "<HeaderData>" + x2js.json2xml_str(headerObj)" +</HeaderData>"; 
console.log(hdrData); 
{ 
    xtype: 'datefield', 
    border: true, 
    width: '100%', 
    fieldLabel: 'somefield', 
    name: 'somefield', 
    format: 'd/m/Y H:i', 
    submitFormat: 'Y-m-d H:i', 
} 
+0

这只是组件定义。显示你的提交代码。 – Alexander

+0

@Alexander更新了我的代码,我将fieldvalue作为json并将它们转换为xml,以便我可以将xml传递给sql。 –

回答

0

ExtJS的不给一个函数来做到这一点。你不得不做出这样的转换您的日期自定义功能:

Date.prototype.toNormalizedDate = function(){ 
    var normalizedDate = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds())); 
    return normalizedDate.toISOString(); 
} 
0

getFieldValues方法返回模型数据。模型数据旨在与商店模型一起使用,该模型通常可以与javascript日期一起使用,因此该函数会从datefields返回javascript日期。只有在序列化期间,JavaScript日期才会被转换为一个字符串,使用浏览器默认值(因为序列化函数已经期望输入仅为字符串)。

你可能想要尝试的是form.getSubmitData。该函数将返回所有字段的字符串值;在日期字段的情况下,日期然后使用submitFormat进行格式化。

第二种可能性是使用提交模型,而不是表单。

定义模型与负载的代理/保存操作:

Ext.define('MyModel',{ 
    extend: 'Ext.data.Model', 
    fields:[{ 
     name: 'somefield', 
     type: 'date', 
     dateFormat: 'Y-m-d H:i' 
    }], 
    proxy: { 
     url: '...' 
    } 
}) 

然后创建新的记录并投入形式:

form.loadRecord(Ext.create('MyModel')) 

或从服务器编辑现有的记录:

MyModel.load(id, { 
    success: function(record) { 
     form.loadRecord(record); 
    } 
}) 

然后再次将其保存到服务器:

form.updateRecord(); 
form.getRecord().save({ 
    success: function() { 
     Ext.alert('Saved!'); 
    } 
}); 

这具有整洁的副作用,您可以将ExtJS的原始XML读取器和写入器添加到模型代理中,并且可以取消自己的XML转换功能。

0

在ExtJs文档窗体中有方法可以使用getValues来获取表单的所有值。你可以参考ExtJs docs

我已经创建了一个小演示来展示你,它是如何工作的。

Sencha fiddle

Ext.create('Ext.form.Panel', { 
    renderTo: Ext.getBody(), 
    width: 300, 
    bodyPadding: 10, 
    title: 'Date', 
    margin: 10, 
    items: [{ 
     xtype: 'datefield', 
     anchor: '100%', 
     fieldLabel: 'From', 
     format: 'd/m/Y H:i', 
     submitFormat: 'Y-m-d H:i', 
     allowBlank: false, 
     name: 'date' 
    }, { 
     xtype: 'button', 
     text: 'Submit Date', 
     formBind: true, 
     handler: function() { 
      var date = this.up('form').getValues().date; 
      /* this is also one way to get value by date field. 
       date =this.up('form').down('datefield').getValue(), 
       submittedDate = Ext.Date.format(date,'Y-m-d H:i'); 
      */ 
      Ext.Msg.alert('Success', `Selected date is <b>${date}</b>`); 
     } 
    }] 
}); 
相关问题