2016-12-16 44 views
0

我要消耗提供給我的相同場中在同一陣列中的記錄在兩個可能的日期格式的API:Ext.data.field.Date - 替換格式

  • 那些其中第二爲零會在YMD H:I格式
  • 那些其中第二非零會在YMD H:I:s格式

例如

[{"date":"2016-12-16 09:52"},{"date":"2016-12-16 09:52:02"}] 

ExtJS商店應該使用這樣的API。該字段定義:

fields:[{ 
    name:'date', 
    type:'date', 
    dateFormat:'Y-m-d H:i:s' 
    altFormats:'Y-m-d H:i' // <- how can I define this in an `Ext.data.field.Date`? 
}] 

我知道有一個convert功能,我可以寫一些搞成這個樣子:

convert:function(value) 
    if(Ext.isDate(value)) return value; 
    var valueWithSecond = Ext.Date.parse(value,"Y-m-d H:i:s"); 
    if(Ext.isDate(valueWithSecond)) return valueWithSecond; 
    var valueWithoutSecond = Ext.Date.parse(value,"Y-m-d H:i"); 
    if(Ext.isDate(valueWithoutSecond)) return valueWithoutSecond; 
} 

由於可以很容易地看出,該字段定義將更爲可讀。這樣的字段定義是否可用?

回答

1

您可以擴展Ext.data.field.Date並覆蓋convert所以你可以使用它像:

{ 
    name:'date', 
    type:'my-date', 
    dateFormat:'Y-m-d H:i:s' 
    altFormats:'Y-m-d H:i' 
}