gpt4 book ai didi

javascript - 从 Angular 中的开始日期和结束日期获取周数

转载 作者:行者123 更新时间:2023-11-30 14:39:38 25 4
gpt4 key购买 nike

  1. 开始日期结束日期中提取星期 - 完成
  2. 周应从开始日期开始计算
  3. 在下拉列表中以这种格式 (week start date)mm/dd - mm/dd(week end date) 显示星期。

下面的代码会得到开始和结束日期。

let dates = JSON.parse(localStorage.getItem('dates'));
let startDate = moment((dates[0].value)).format('YYYY-MM-DD'); //"2018-05-01"
let endDate = moment((dates[1].value)).format('YYYY-MM-DD'); //"2018-05-15"

例子开始日期:2018 年 5 月 1 日,星期二结束日:2018 年 5 月 15 日,星期二

总天数是:15 天。它是 2 周零 1 天。

所以我需要显示如下所示的下拉菜单

  • 05/01 - 05/07(第 1 周)
  • 05/08 - 05/14(第 2 周)
  • 05/15 - 05/15(第 3 周)

尝试提取星期

 Date.prototype.getWeek = function(start)
{
//Calcing the starting point
start = start || 0;
var today = new Date(this.setHours(0, 0, 0, 0));
var day = today.getDay() - start;
var date = today.getDate() - day;

// Grabbing Start/End Dates
var StartDate = new Date(today.setDate(date));
var EndDate = new Date(today.setDate(date + 6));
return [StartDate, EndDate];
}

// test code
var Dates = new Date().getWeek();

但是上面的代码不起作用。请帮忙

最佳答案

您可以执行以下操作:

formatDates() {
let startDate = moment('2018-05-01');
let endDate = moment('2018-05-15');
let weekData = [];
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})`
}
return weekData;
}

formatDates 将返回周数组:

[
{startDate: "05/01", endDate: "05/07", label: "05/01 - 05/07 (week1)"},
{startDate: "05/08", endDate: "05/14", label: "05/08 - 05/14 (week2)"},
{startDate: "05/15", endDate: "05/15", label: "05/15 - 05/15 (week3)"}
]

关于javascript - 从 Angular 中的开始日期和结束日期获取周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49873361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com