2017-04-10 87 views
-1

,因为我有我的一个名为季度页面下拉已下列值 -的JavaScript +定义日期每季度

Quarter 1 
Quarter 2 
Quarter 3 
Quarter 4 

此外,我有一个名为一年的年值另一个领域 - 2015,2016,2-17, 2-18,2019,2020

我想定义在我的javascript代码每个季度的数值一样

if(quarter = "quarter 1") 
{ 
    startdate = 2017-01-01;enddate = 2017-01-31 
} 

等了其他宿舍也。

我想问一下,是否有内置的功能来获取每个季度的startdate和enddate,并且我会将year字段值附加到它,因此它不保持静态。

任何帮助,将不胜感激。

由于提前

+0

什么是1季度的开始? – gurvinder372

+0

@ gurvinder372 1月第一 – mplungjan

+0

没有内置处理。但'var yyyy = new Date()。getFullYear(),Q1Start = yyyy +“ - 01-01”,Q1End = yyyy +“ - 01-31”,Q2Start = yyyy +“ - 04-01”,Q2End yyyy +“ - 07-31”'等 – mplungjan

回答

0

我想问一下如果有内置的功能,以获得开始日期日期和结束日期每个季度,我将在今年字段值追加到它。

那些是常数。以Q1为例,你谈的是一年中的正常日历季度。 Q1从01/01开始到31/03结束,Q2从01/04开始并在30/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)) 
}; 
// ... 
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(); 
} 
-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;