Java脚本中的动态日期Caluculation

时间:2018-04-25 10:51:54

标签: javascript dojo dijit.form

我有两个dijit/form/DateTextBox的dataPickers。一个用于startdate,另一个用于Enddate。

我想检查" Enddate > startdate+ 90days 3月)"如果是,那么我需要用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
  } 
}

1 个答案:

答案 0 :(得分:4)

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

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>