【发布时间】:2014-09-23 12:21:35
【问题描述】:
我在这里阅读了很多帖子,但无法得到我想要的。我目前是 Javascript 新手,不知道如何以 MM-DD-YYYY 格式获取当前季度的第一个 Date。
提前致谢!
【问题讨论】:
标签: javascript jquery momentjs
我在这里阅读了很多帖子,但无法得到我想要的。我目前是 Javascript 新手,不知道如何以 MM-DD-YYYY 格式获取当前季度的第一个 Date。
提前致谢!
【问题讨论】:
标签: javascript jquery momentjs
时刻 1.7.0+ 它只是
moment().startOf('quarter').format('MM-DD-YYYY');
【讨论】:
在 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());
【讨论】:
纯 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);
【讨论】:
感谢您的回答。但是我已经得到了解决方案,并且我使用了下面的代码。没有测试过上面的代码。
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");
【讨论】:
parseInt 中),fromDate 将导致 '00/01/2014'。在我的回答中,我使用模数来获得当月和季度开始之间的差异。这是开箱即用的,因为getMonth 返回一个索引为 0 的月份 (0-11)。