Динамический расчет даты в скрипте Java - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть два сборщика данных dijit/form/DateTextBox. Один для начала и другой для окончания.

Я хочу проверить, "Enddate > startdate+ 90days 3month)", если да, тогда мне нужно сбросить конечную дату с начальной датой + 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 голосов
/ 25 апреля 2018

Вы можете достичь этого, но с помощью dateBox min constaraint установите событие изменения в вашей начальной дате, затем установите 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>
...