我正在使用以下功能来查找所选日期的季度的最后一天。
现在,我只添加12 * Date.WEEK,但这并不是我想要的。
您能否看一下并咨询如何找到该季度的最后一天?我想在date2获得季度的最后一天。

 function catcalc(cal) {
 var date = cal.date;
    var time = date.getTime();
    var field = document.getElementById("x_Bis");
    if (field == cal.params.inputField) {
        field = document.getElementById("x_Von");
        time -= 12*Date.WEEK; // substract one week
    } else {
     time += 12*Date.WEEK; // add one week  6*Date.DAY
    }
    var date2 = new Date(time);
  field.value = date2.print("%d.%m.%Y");


我应该保留函数结构并保留变量名称。有两个相互关联的日历字段。用户可以从日历中选择任何日期(无需时钟时间)。该函数来自http://cimanet.uoc.edu/logica/v2/lib/jscalendar-1.0/doc/html/reference.html

最佳答案

Live Demo

function getQ(date) {
  var t=new Date(date.getTime()),year=t.getFullYear() // copy
  t.setHours(0,0,0,0); // normalise to not get boundary errors
  // note months start at 0 in  JS
  var q1 = new Date(year,2,31),
      q2 = new Date(year,5,30),
      q3 = new Date(year,8,30),
      q4 = new Date(year,11,31);
  if (t<=q1) return q1;
  if (t<=q2) return q2;
  if (t<=q3) return q3;
  if (t<=q4) return q4;
}
getQ(new Date()); // today will return 31st of March


在您的代码中,我想您可以使用

function catcalc(cal) {
  var date = cal.date;
  var field = document.getElementById("x_Bis");
  if (field == cal.params.inputField) {
    field = document.getElementById("x_Von");
  }
  var date2 = getQ(date);
  field.value = date2.print("%d.%m.%Y");
}

09-25 22:28