【发布时间】:2018-04-18 08:15:50
【问题描述】:
我正在尝试从给定的 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 天?
【问题讨论】:
-
你为什么要转动片刻,变成一根弦然后又回到片刻?
while循环是做什么用的? -
我已经更新了我的代码
标签: javascript typescript