ExtJs 3.4:将字符串类型日期设置为日期字段的值

时间:2014-01-22 04:54:48

标签: javascript extjs datefield

我有Json数据,它通过发送Ajax请求从数据库中检索。

{'tourData':[{ 'code' : '6', 'ref' : '22/01/2014 09:08:54-Route 2', 'vehicle' : 'GY-122-120', 'fromDate' : '2014-01-22 00:00:00', 'toDate' : '2014-01-22 00:00:00', 'tourAssign' : 'Saman', 'driver' : 'Kamal Subhasingha', 'assistant' : 'Sampath Jayaweera', 'porter1' : 'Namal Witharana', 'porter2' : 'Yohan', 'porter3' : 'Ahan Liyanage' } ]}

我尝试将'fromDate'设置为日期字段的值。

new Ext.form.DateField({
        id : 'fromDateCombo',
        fieldLabel : 'From Date',
        allowBlank : false,
        width : 140,
        name : 'fromDate',
        emptyText : 'From Date',
        hideLabel : true,
        format: 'd/m/Y',
        style : 'marginleft:10px',
        disabled : true,
        listeners : {
            select : function() {
                if (Ext.getCmp('toDateCombo').getValue()< this.getValue()) {
                    Ext.Msg.show({
                          title: 'Error',
                          msg: 'From Date should be less than or equal To Date' ,
                          buttons: Ext.MessageBox.OK,
                          icon: Ext.MessageBox.ERROR
                    });
                    this.setValue(sysDate);
                } 
            }, render: function(c) {
                new Ext.ToolTip({
                    target: c.getEl(),
                    html: 'From Date'
                });
            }

        }
    });

我试过了。

var jsonData = Ext.util.JSON.decode(response.responseText);  
                            console.log(jsonData);
                            if (jsonData.tourData.length > 0) {

                                Ext.getCmp('fromDateCombo').setValue(Date.parseDate(String(jsonData.tourData[0].fromDate), 'd/m/Y'));

                            }

但它没有设置日期,也没有在我的firebug控制台中打印任何错误消息。

我的代码有什么问题,如何解决?

亲切的问候

2 个答案:

答案 0 :(得分:1)

var fromDate = jsonData.tourData[0].fromDate;
console.log(fromDate); // it should not be undefined

var value = Date.parseDate(fromDate, "Y-m-d H:i:s");
Ext.getCmp('fromDateCombo').setValue(value);

答案 1 :(得分:0)

使用

Date.parseDate(jsonData.tourData[0].fromDate, "Y-m-d g:i:s")

请参阅此处的工作示例 http://jsfiddle.net/vinodgubbala/82989/