Java 脚本中的动态日期计算

Dynamic date Caluculation in Java script

我有两个 dijit/form/DateTextBox 的数据选择器。一个用于开始日期,另一个用于结束日期。

我想检查是否是“Enddate > startdate+ 90days 3month)”,如果是,那么我需要将结束日期重置为 startdate+ 90days。

从 DateTextBox 2018-04-25 获取的格式。请对此提供帮助

var fromDate=digit.byId('startDate');

if(fromDate!=null) {

  var fromtimestamp=new Date(digit.byId('startDate')).getTime();
  var endtimestamp=new Date(digit.byId('endDate')).getTime();
  var timestamp= new Date(digit.byId('startDate')).getTime+ (30 *24*60*60*1000);

  if(endtimestamp>timestamp) {
    // wants to reset with startdate+ 90days
  } 
}

您可以实现此目的,但使用 dateBox 最小限制在您的开始日期设置更改事件,然后设置 digit.byId('endDate').constraints.min 开始日期 + 90 如:

digit.byId('startDate').on("change",function() {
  var end = new Date(this.value);
  end.setDate(end.getDate() + 90);
  digit.byId('endDate').constraints.min = end;
})

请参阅下面的程序片段:

require(["dijit/form/DateTextBox", "dijit/form/Button","dojo/on" ,
  "dojo/domReady!"
], function(DateTextBox,Button, On ) {

  var startdate = new DateTextBox({
      constraints:{
        datePattern:'yyyy-MM-dd'
      }
    }, "startDate");
    
    var enddate = new DateTextBox({
      constraints:{
        datePattern:'yyyy-MM-dd'
      }
    }, "endDate");
    
    startdate.on("change",function() {
      var end = new Date(this.value);
      end.setDate(end.getDate() + 90);
      enddate.constraints.max = end;
      enddate.constraints.min = new Date(this.value);
    })
    
});
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>

<body class="claro">
  start :<div id="startDate" ></div>
  
  end : <div id="endDate" ></div>
</body>