我正在尝试从给定的Start Date
和End Date
提取周数。
如果日期范围超过31天,我需要将endDate限制为最多31天。
示例:
Start date : 1st May 2018
default end date: 30th June 2018
New endDate should be: 31st May 2018
以下是我提取周数的代码
weekByDates() {
let dates = JSON.parse(localStorage.getItem('pfsessionFilter'));
let stDate = moment((dates[0].value)).format('YYYY-MM-DD');
let eDate = moment((dates[1].value)).format('YYYY-MM-DD');
let startDate = moment(stDate);
let endDate = moment(eDate);
let weekData = [];
if(endDate.diff(startDate, 'days')>31)
endDate = moment(startDate.add(31, 'days'));
while(startDate.isSameOrBefore(endDate)) {
if(weekData.length > 0) {
// Update end date
let lastObj = weekData[weekData.length - 1];
lastObj['endDate'] = moment(startDate).format('MM/DD');
lastObj['label'] = `${lastObj.startDate} - ${lastObj['endDate']} (week${weekData.length})`
startDate.add(1, 'days');
}
weekData.push({startDate: moment(startDate).format('MM/DD')});
startDate.add(6, 'days');
}
if(startDate.isAfter(endDate)) {
// Update last object
let lastObj = weekData[weekData.length - 1];
lastObj['endDate'] = moment(endDate).format('MM/DD');
lastObj['label'] = `${lastObj.startDate} - ${lastObj['endDate']} (week${weekData.length})`
}
console.log(weekData)
return weekData;
}
请帮助您了解如何将endDate限制为从开始日期算起的31天?
答案 0 :(得分:1)
检查范围是否大于31天,而不是使用添加方法
weekByDates()
{
let dates = JSON.parse(localStorage.getItem('getDates'));
let stDate = moment((dates[0].value)).format('YYYY-MM-DD');
let eDate = moment((dates[1].value)).format('YYYY-MM-DD');
let startDate = moment(stDate);
let endDate = moment(eDate);
if(eDate.diff(stDate, 'days')>31)
endDate = moment(stDate).add(31, 'days');
let weekData = []; while(startDate.isSameOrBefore(endDate))
{ .... }
答案 1 :(得分:-1)
您可以使用add()函数
来限制天数weekByDates() {
let dates = JSON.parse(localStorage.getItem('getDates'));
let stDate = moment((dates[0].value)).format('YYYY-MM-DD');
let eDate = moment((dates[1].value)).format('YYYY-MM-DD');
let startDate = moment(stDate);
let endDate = moment(stDate.add(31, 'days'));
let weekData = [];
while(startDate.isSameOrBefore(endDate)) {
....
}
希望它能帮助你。
答案 2 :(得分:-1)
我用这个判断
if(endDate.diff(startDate, 'days') > 31){
//More than 31 days
}