前言
业务有一个需求,选择了某一年后需要生成一个下拉列表让用户可以选择这一年各个周,然后前端产生这个周起始和结束的时间(周一早上00:00:00到周日晚上00:00:00),发送给后端接口获取所选周的数据。
操作
项目中为了开发上的方便,引用了momentjs
下面是一开始的做的,这样出业的结果是有问题的:
// 算出一年有多少个周,并返回每一同的开始和结束时间
export const mapWeeksOfyear = ({ year, week } = {}) => {
const nowYear = year ? year : moment().year();
// 设置正在处理的年份
let handleYear = moment(new Date(String(nowYear)));
// 这一年有多少个周
const totalWeeks = handleYear.endOf('year').isoWeek();
const arr = [];
for(let i = 1;i <= totalWeeks;i++){
arr.push({
value: i,
name: '第' + i + '周',
startTime: handleYear.week(i).startOf('week').valueOf(),// 这周的开始时间
endTime: handleYear.week(i).endOf('week').valueOf(),