我在名为Quarter的页面上有一个下拉列表,其中包含以下值 -
Quarter 1
Quarter 2
Quarter 3
Quarter 4
此外,我还有另一个名为Year with Year值的字段 - 2015,2016,2-17,2-18,2019,2020
我想在我的javascript代码中定义每个季度的值,例如
if(quarter = "quarter 1")
{
startdate = 2017-01-01;enddate = 2017-01-31
}
其他季度也是如此。
我想问一下是否有内置功能来获取每个季度的startdate和enddate,我会将年份字段值附加到它。因此它不会保持静态。
任何帮助都将不胜感激。
先谢谢
答案 0 :(得分:0)
我想问一下是否有内置功能来获取每个季度的startdate和enddate,我会将年份字段值附加到它。
这些是常数。以你在Q1的例子为例,你谈论的是一年中的正常日历季度。 Q1于01/01开始,于3月31日结束,Q2于01/04开始,于06/06等结束。由于没有季度在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))
};
// ...
答案 1 :(得分:0)
许多国家/地区的财政年度的季度从4月1日开始,所以我认为您需要先设置quarter 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();
}
答案 2 :(得分:-1)
//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;