2014-09-23 130 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); 
相關問題