2016-12-16 4 views
0

Ich muss eine API verbrauchen, die das gleiche Feld in Datensätzen in der gleichen Anordnung in zwei möglichen Datumsformate mir stellt:Ext.data.field.Date - alternatives Format

  • Diejenigen, wo die zweite Null ist in Ymd H kommen: i
  • Diejenigen formatieren, wo der zweite nicht Null wird kommen in Ymd H ist: i: s-Format

Eg

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

Ein ExtJS-Speicher muss solche API konsumieren. Die Felddefinition:

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`? 
}] 

Ich weiß, es ist eine convert Funktion, in der ich etwas Chaos wie dieses schreiben kann:

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; 
} 

Wie leicht zu sehen ist, würde die Felddefinition weit mehr lesbar . Ist eine solche Felddefinition verfügbar?

Antwort

1

Sie können Ext.data.field.Date erweitern und außer Kraft setzen convert so dass Sie in der Lage sein, es zu benutzen mag:

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