繁体   English   中英

如何获取一周的日期

[英]How to get Dates for a week

我试图制作一个包含 1 周数据的数组,但除此之外想不出别的东西

我应该做一个 for 循环还是什么? 我很菜鸟,所以我对它进行了硬编码以使其工作。 该代码确实有效,但它有点缓慢和奇怪,我认为还有另一种解决方案,请帮助我大声笑

 const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; let today, date; today = new Date(); date = new Date(today); const one = new Date(); one.setDate(date.getDate() + 1); const two = new Date(); two.setDate(date.getDate() + 2); const three = new Date(); three.setDate(date.getDate() + 3); const four = new Date(); four.setDate(date.getDate() + 4); const five = new Date(); five.setDate(date.getDate() + 5); const six = new Date(); six.setDate(date.getDate() + 6); const dataday = [ { day: days[today.getDay()], num: today.getDate(), date: today.getDate() + "-" + today.getFullYear() + "-" + today.getMonth(), selected: false, }, { day: days[one.getDay()], num: one.getDate(), date: one.getDate() + "-" + one.getFullYear() + "-" + one.getMonth(), selected: false, }, { day: days[two.getDay()], num: two.getDate(), date: two.getDate() + "-" + two.getFullYear() + "-" + two.getMonth(), selected: false, }, { day: days[three.getDay()], num: three.getDate(), date: three.getDate() + "-" + three.getFullYear() + "-" + three.getMonth(), selected: false, }, { day: days[four.getDay()], num: four.getDate(), date: four.getDate() + "-" + four.getFullYear() + "-" + four.getMonth(), selected: false, }, { day: days[five.getDay()], num: five.getDate(), date: five.getDate() + "-" + five.getFullYear() + "-" + five.getMonth(), selected: false, }, { day: days[six.getDay()], num: six.getDate(), date: six.getDate() + "-" + six.getFullYear() + "-" + six.getMonth(), selected: false, }, ]; console.log(dataday);

在这里回答了一个类似的问题,只是为你稍微修改了一下:

  • 使用new Date();创建今天的日期new Date();
  • 获取temp对象中的日 (d)、月 (m) 和年 (y)
  • 检查这个月有多少天(比如九月有 30)
  • 创建一个长度为 7 的数组并创建该数组的每个对象
  • 创建每个对象时,将temp.d增加 1
  • 如果超过一个月的天数,将temp.m加 1 temp.m重置为 1( temp.d开始)
  • 做你想要的自定义对象表示

 console.log(getThisWeek()); function getThisWeek() { var today = new Date(); const temp = { d: today.getDate(), m: today.getMonth(), y: today.getFullYear(), } const numDaysInMonth = new Date(temp.y, temp.m + 1, 0).getDate() return Array.from({length: 7}, _ => { if (temp.d > numDaysInMonth){ temp.m +=1; temp.d = 1; // not needed, Date(2020, 12, 1) == Date(2021, 0, 1) /*if (temp.m >= 12){ temp.m = 0 temp.y +=1 }*/ } const newDate = new Date(temp.y, temp.m, temp.d++); //.toUTCString() return { day: newDate.toLocaleDateString('en-US', {weekday: 'short'}), num: newDate.getDate(), date: newDate.getDate() + "-" + newDate.getFullYear() + "-" + newDate.getMonth(), selected: false, }; }); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM