2014-09-23 281 views

回答

15

有了片刻1.7.0+它只是

moment().startOf('quarter').format('MM-DD-YYYY'); 
+0

这应该是Accepter作为正确的答案! – 2016-09-22 12:00:08

5

获取JavaScript中的日期,使用moment.js到格式:

var qtrDate = (function() { 
    var d = new Date(), 
     m = d.getMonth() - d.getMonth() % 3; 
    return moment(new Date(d.getFullYear(), m, 1)).format('MM-DD-YYYY'); 
}()); 

function getQuarterFirstDay (d) { 
    var m = d.getMonth() - d.getMonth() % 3; 
    return moment(new Date(d.getFullYear(), m, 1)).format('MM-DD-YYYY'); 
} 
var d = getQuarterFirstDay(new Date()); 
0

感谢answer.However我已经得到了解决,我用下面的代码。没有测试过上面的代码。

var m = Math.floor(parseInt(month)/3); 
    var month = m * 3; 
    if(month == 0){ 
    month=1; 
    } 
    fromDate = "0" + month + "/" + "01/" + moment(today).format("YYYY"); 
    toDate = moment(today).format("MM/DD/YYYY"); 
+0

请注意,月<3(在'parseInt函数'),'fromDate'将导致''/ 00/2014''。在我的回答中,我使用模数来获得当前月份和季度开始之间的差异。由于'getMonth'返回一个0索引的月份(0-11),所以这个功能很有用。 – user4040648 2014-09-23 13:39:22

+0

@ user4040648感谢您发现问题..修改了上面的代码.. – Alok 2014-09-23 13:49:50

2

纯JavaScript的解决方案:

var currentMonth=(new Date()).getMonth() 
    var yyyy=(new Date()).getFullYear() 
    var start= (Math.floor(currentMonth/3)*3)+1, 
    end= start+3, 
    startDate=new Date(start+'-01-'+ yyyy), 
    endDate= end>12?new Date('01-01-'+ (yyyy+1)):new Date(end+'-01-'+ (yyyy)); 
    endDate=new Date((endDate.getTime())-1) 

    console.log('startDate =', startDate,'endDate =', endDate); 
相关问题