Ext.define('Proxmox.DateTimeField', { extend: 'Ext.form.FieldContainer', xtype: 'promxoxDateTimeField', layout: 'hbox', referenceHolder: true, submitFormat: 'U', getValue: function() { var me = this; var d = me.lookupReference('dateentry').getValue(); if (d === undefined || d === null) { return null; } var t = me.lookupReference('timeentry').getValue(); if (t === undefined || t === null) { return null; } var offset = (t.getHours()*3600+t.getMinutes()*60)*1000; return new Date(d.getTime() + offset); }, getSubmitValue: function() { var me = this; var format = me.submitFormat; var value = me.getValue(); return value ? Ext.Date.format(value, format) : null; }, items: [ { xtype: 'datefield', editable: false, reference: 'dateentry', flex: 1, format: 'Y-m-d' }, { xtype: 'timefield', reference: 'timeentry', format: 'H:i', width: 80, value: '00:00', increment: 60 } ], initComponent: function() { var me = this; me.callParent(); var value = me.value || new Date(); me.lookupReference('dateentry').setValue(value); me.lookupReference('timeentry').setValue(value); me.relayEvents(me.lookupReference('dateentry'), ['change']); me.relayEvents(me.lookupReference('timeentry'), ['change']); } });