如何找到明天和昨天的日期?

时间:2017-02-08 21:05:16

标签: javascript sapui5

我想查找今天,明天和昨天的日期,我想比较来自后端的日期,并分别显示“今天”,“明天”和“昨天”。

今天,我用过:

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

但是,明天昨天不起作用。任何人都可以建议我做错了什么?如何将日期与系统日期进行比较以查明明天或昨天?

2 个答案:

答案 0 :(得分:3)

为了相对显示日期,您只需要将属性与type Dateformat 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服务获取日期值,请参阅文档主题 Date and Time Related Controls: Data Binding

答案 1 :(得分:0)

尝试以下代码:

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