javascript+;定义每个季度的日期

javascript+;定义每个季度的日期,javascript,Javascript,我在我的页面上有一个名为Quarter的下拉列表,其中包含以下值- Quarter 1 Quarter 2 Quarter 3 Quarter 4 另外,我还有一个名为Year的字段,其年份值为20152016,2-17,2-1820192020 我想在javascript代码中定义每个季度的值,如 if(quarter = "quarter 1") { startdate = 2017-01-01;enddate = 2017-01-31 } 其他方面也是如此 我想问一下,是否有内置功

我在我的页面上有一个名为Quarter的下拉列表,其中包含以下值-

Quarter 1
Quarter 2
Quarter 3
Quarter 4
另外,我还有一个名为Year的字段,其年份值为20152016,2-17,2-1820192020

我想在javascript代码中定义每个季度的值,如

if(quarter = "quarter 1")
{
  startdate = 2017-01-01;enddate = 2017-01-31
}
其他方面也是如此

我想问一下,是否有内置功能来获取每个季度的startdate和enddate,我会将year字段值附加到其中,这样它就不会保持静态

任何帮助都将不胜感激

提前谢谢

我想问一下,是否有内置的功能来获取每个季度的startdate和enddate,我将在其中附加year字段值

这些是常数。以第一季度为例,您所说的是一年中正常的日历季度。第一季度从2001年1月1日开始,到2003年31月31日结束,第二季度从2004年1月1日开始,到2006年30日结束,等等。由于没有季度从2月最后一天开始或结束,因此这不是一个移动目标

不,没有内置功能,但您不需要任何。只需根据这些恒定的月和日值以及所需的年份构造日期

var q1 = {
    start: new Date(2017, 0, 1),    // Remember, January = 0 here
    end:   new Date(2017, 2, 31)
};
// ...
或UTC:

var q1 = {
    start: new Date(Date.UTC(2017, 0, 1)),
    end:   new Date(Date.UTC(2017, 2, 31))
};
// ...

对于许多国家,一个财政年度的季度从4月1日开始,因此我认为您需要首先设置第一季度的开始日期

比方说

var startDate = new Date();
date.setMonth(2);
date.setDate(1);
然后你可以有如下功能

function addQuarter(date) 
{ 
   date.setMonth( date.getMonth() + 3 ); 
   return date; 
}
比如说

addQuarter(date); //returns Thu Jun 01 2017
类似于获取季度的最后日期

function lastDateOfQuarter( date )
{
  date.setMonth( date.getMonth() + 3 ); 
  date.setDate( date.getDate() - 1);
  return date;
}
您可以根据显示要求设置日期格式

function formatDate( date )
{
  return date.getDate() + "-" + ( date.getMonth() + 1 ) + "-" + date.getFullYear();
}

第1季度的开始是什么?@gurvinder372 Jan first没有内置处理。但是
var yyyy=new Date().getFullYear(),Q1Start=yyyy+“-01-01”,Q1End=yyy+“-01-31”,Q2Start=yyyy+“-04-01”,Q2End-yyy+“-07-31”
等等您为
“第一季度”
指定的开始和结束日期只定义一个月(一月),而不是一个季度。
//if you are using current year 
var todayDate=new Date();

var startMonth=todayDate.getMonth();
var startDay=1;

var endMonth=todayDate.getMonth();
var endtDay=31;

switch(quarterValue){
  case "Q1" : startMonth=0;endMonth=2;
  case "Q2" : startMonth=3;endMonth=5;
  case "Q3" : startMonth=6;endMonth=8;
  case "Q4" : startMonth=9;endMonth=11;

}

todayDate.setMonth(startMonth);
todayDate.setDate(startDay);

var startDate=todayDate;

todayDate.setMonth(endMonth);
todayDate.setDate(endDay);

var endDate=todayDate;