如何解决如何获得一周的日期
我试图制作一个数组,其中包含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(),{
day: days[two.getDay()],num: two.getDate(),date: two.getDate() + "-" + two.getFullYear() + "-" + two.getMonth(),{
day: days[three.getDay()],num: three.getDate(),date:
three.getDate() + "-" + three.getFullYear() + "-" + three.getMonth(),{
day: days[four.getDay()],num: four.getDate(),date: four.getDate() + "-" + four.getFullYear() + "-" + four.getMonth(),{
day: days[five.getDay()],num: five.getDate(),date: five.getDate() + "-" + five.getFullYear() + "-" + five.getMonth(),{
day: days[six.getDay()],num: six.getDate(),date: six.getDate() + "-" + six.getFullYear() + "-" + six.getMonth(),];
console.log(dataday);
解决方法
我回答了类似的问题here,只是为您做了一些修改:
- 使用
new Date();
创建今天的日期 - 在
temp
对象中获取日期(d),月份(m)和年份(y) - 检查本月有多少天(例如9月有30天)
- 创建一个长度为7的数组,并创建该数组的每个对象
- 在创建每个对象时,将
temp.d
加1 - 如果您超过当月的天数,请在
temp.m
中加1,然后将temp.d
重置为1(从新月开始) - 进行所需的自定义对象表示
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,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,};
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。