2017-01-13 5 views
0

Я получаю ответ JSON с моей REST, содержащей три свойства со связанными форматами дата, как показано ниже:DateFormat не работает в Firefox браузере

createdAt: 2017-01-10T06: 43: 16.076Z (Сохраненный в интерфейсе с помощью @Temporal (TemporalType.TIMESTAMP): Comming от отдыха вызова

FromDate: 2017-01-16Z (Сохраненный использованием @Temporal (TemporalType.Date): поле ввода с DatePicker для захвата даты, введенной пользователем

ФОРУМЕ: 2017-01-17Z (сохранено с помощью @Temporal (TemporalType.Date): поле ввода с датой выборки для ввода даты, введенной пользователем

В моем XMLView я использую класс форматирования, чтобы показать указанные три даты как 10-Jan-2017, 16-Jan-2017 и 17-Jan-2017.

Formater class: 

sap.ui.define([ 

    "sap/ui/core/format/DateFormat" 
], function(constants, DateFormat) { 
    "use strict"; 

    var _parse = function(v) { 
     var oDateFormat = DateFormat.getDateTimeInstance({ 
      pattern: "dd-MMM-YYYY" 
     }); 
     var oDateTimeFormat = DateFormat.getDateTimeInstance({ 
      pattern: "dd-MMM-YYYY HH:mm:ss" 
     }); 
     return oDateFormat.parse(v) || oDateTimeFormat.parse(v) || new Date(v); 
    }; 

    var _getFormattedDateTime = function(v, patt) { 
     if (!v) { 
      return v; 
     } 

     var oDateFormat = DateFormat.getDateTimeInstance({ 
      pattern: patt 
     }); 
     return oDateFormat.format(_parse(v)); 
    }; 

Return { 
Date: function(v) { 
      return _getFormattedDateTime(v, constants.DateFormat); 
     }, 

DateTime: function(v) { 
      return _getFormattedDateTime(v, constants.DateTimeFormat); 
     }, 
} 

И я звоню то же самое в представлении XML для представления элемента, как:

for createdAt field: 

<Text text="{path:'list>embHeaderData/createdAt', formatter:'.formatter.Date'}" tooltip="{path:'list>embHeader/createdAt', formatter:'.formatter.DateTime'}"/> 


for fromDate field: 

<Text text="{path:'list> embProcessData /fromDate', formatter:'.formatter.Date'}" tooltip="{path:'list> embProcessData /fromDate', formatter:'.formatter.DateTime'}"/> 


for toDate field: 

<Text text="{path:'list> embProcessData /toDate', formatter:'.formatter.Date'}" tooltip="{path:'list>embProcessData/toDate', formatter:'.formatter.DateTime'}"/> 

три формата дата работает отлично в хроме, но FromDate и Todate пустые в светлячок, когда я вижу тот же вид xml.

Не могли бы вы помочь мне исправить эту проблему в браузере Firefox.

ответ

0
  1. Пожалуйста, удалите пробелы в вашем пути привязки для fromDate и toDate.
  2. Пожалуйста, используйте формат даты, как это (предполагается, что все время UTC):

    var oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance({ 
        pattern: "yyyy-MM-ddZ", 
        UTC: true 
    }); 
    var oDateFormatter = sap.ui.core.format.DateFormat.getDateTimeInstance({ 
        style: "medium", 
        UTC: true 
    }); 
    // example: 
    oDateFormatter.format(oDateFormat.parse("2017-01-17Z"), true); 
    

    разобрать Todate и FromDate. Ошибка в том, что

    new Date("2017-01-17Z") 
    

    не работает в Firefox, но это делает в Chrome.

+0

Спасибо за ваш reply.I удалить его, но все это работает только в хроме, а не в Firefox , – Smith

+0

Привет, Себастьян, используя этот формат, даты появляются во всех браузерах, но теперь fromDate: 2017-01-16 + 0530, но мне это нужно как 16-Jan-2017.Как я это делаю? – Smith

+0

Я изменил ответ, предполагая, что ваше время UTC; но я не знаю, есть ли в вашем случае UTC или местный часовой пояс и что вы хотите отображать –

2

Вместо того, чтобы писать собственные форматтеры вы можете использовать стандартные типы данных и их богатые возможности конфигурации:

<Text 
    text="{path : 'list>embHeaderData/createdAt', type 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddTH:m:s.SZ' }, UTC : true }}" 
    tooltip="{ path : 'list>embHeaderData/createdAt', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddTH:m:s.SZ' }, UTC : true }}"/> 

<Text 
    text="{path : 'list>embProcessData/fromDate', type : 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}" 
    tooltip="{path : 'embProcessData/fromDate', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"/> 

<Text 
    text="{path : 'list>embProcessData/toDate', type : 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}" 
    tooltip="{path : 'embProcessData/toDate', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"/> 
Смежные вопросы