2017-02-08 3 views
1

Я хочу найти даты на сегодня, завтра и вчера, и хочу сравнить даты, исходящие из бэкэнд и отображения «Сегодня», «Завтра» и «Вчера» соответственно.Как найти дату завтрашнего дня и вчерашнего дня?

На сегодняшний день, я использовал:

var a = Date(); 

На завтра, я использовал:

var b = Date() + 1; 

и вчера, я использовал:

var b = Date() - 1; 

Следовательно, это полная код, который я сделал в formatter.js

myDate: function(abc) { 
    var oDateFormat; 
    var requiredDate = oDateFormat.format(new Date(abc)); 
    var currentDate = oDateFormat.format(new Date()); 
    var tomorrowDate = oDateFormat.format(new Date() + 1); 
    var yesterdayDate = oDateFormat.format(new Date() - 1); 
    if (requiredDate === currentDate) { 
    return "Today"; 
    } else if (requiredDate === tomorrowDate) { 
    return "Tomorrow"; 
    } else if (requiredDate === yesterdayDate) { 
    return "Yesterday"; 
    } else { 
    return requiredDate; 
    } 
}, 

Однако завтра и вчера не работают. Может ли кто-нибудь предположить, что я делаю неправильно? Как я могу сравнить даты с системной датой, чтобы найти ее завтра или вчера?

+0

Является ли дата от вас backend строкой или типом даты? –

+0

его тип даты –

+0

Проблема с вами заключается в том, что вы форматируете даты в строку и затем сравниваете их. Это не будет работать, потому что вы не можете сравнить строки –

ответ

3

Для отображения даты относительно, вам просто нужно связать свойство с type Date и format option relative.

E.g. (От https://embed.plnkr.co/Ec5jnK/):

value="{ 
    path: 'modelName>/myDate', 
    type: 'sap.ui.model.type.Date', 
    formatOptions: { 
     relative: true 
    } 
}" 

enter image description here

В случае получения значений даты из службы OData, используйте тип sap.ui.model.odata.type.Date вместо этого. Параметры формата применяются одинаково.

0

Try Ниже код:

myDate: function(BackEndDate) { 
     var currentDate = new Date(); 
     var tomorrowDate = new Date(); 
     var yesterdayDate = new Date(); 

     // Increase the date by 1 day 
     tomorrowDate.setDate(tomorrowDate.getDate() + 1); 

     // Decrease the date by 1 day 
     yesterdayDate.setDate(yesterdayDate.getDate() - 1); 

     if (BackEndDate === currentDate) { 
      return "Today"; 
     } 
     else if (BackEndDate === tomorrowDate) { 
      return "Tomorrow"; 
     } 
     else if (BackEndDate === yesterdayDate) { 
      return "Yesterday"; 
     } 

     else   
     { 
      return BackEndDate; 
     } 
    } 
}, 
+1

Hi Vivek. эта вещь работает, однако, если я попытаюсь на сегодняшний день формат, используя \t вар oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance ({ \t \t \t \t картина: "EEE, MMM d" \t \t \t}); Он снова показывает мне ту же ошибку, что getDate() не является функцией. Мне нужно отформатировать дату, чтобы отобразить ее в интерфейсе. –

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