2016-12-16 4 views
0

я должен потреблять API, который предоставляет мне такое же поле в записях в одном массиве в двух возможных форматов даты:Ext.data.field.Date - альтернативный формат

  • Те, где второй равен нулю придет в Ymd H: я форматировать
  • Те, где вторая ненулевая придет в Ymd H: I: с форматом

Например

[{"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' 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^