javascript函数获取一周中的所有日期
我正在尝试获取一周中所有天数的数组,比如今天是8月1日,所以我需要获取一个本周的数组,它看起来像 ['2019-07-28'、'2019-07-29'、'2019-07-30'、'2019-07-31'、'2019-08-01'、'2019-08-02'、'2019-08-03'] 为了实现这一点,我编写了以下代码javascript函数获取一周中的所有日期,javascript,date,Javascript,Date,我正在尝试获取一周中所有天数的数组,比如今天是8月1日,所以我需要获取一个本周的数组,它看起来像 ['2019-07-28'、'2019-07-29'、'2019-07-30'、'2019-07-31'、'2019-08-01'、'2019-08-02'、'2019-08-03'] 为了实现这一点,我编写了以下代码 var week_list = [] const today = new Date() week_list.push(today.toISOString().substring(0,
var week_list = []
const today = new Date()
week_list.push(today.toISOString().substring(0,10))
var counter = today.getDay()
// get next
var next_day = today
for(var i = counter;i<6;i++){
next_day.setDate(next_day.getDate()+1)
week_list.push(next_day.toISOString().substring(0,10))
}
// get prev
var prev_day = today
for(var i = counter;i>0;i--){
prev_day.setDate(prev_day.getDate()-1)
week_list.push(prev_day.toISOString().substring(0,10))
}
console.log(week_list)
var周列表=[]
const today=新日期()
week_list.push(today.toISOString().substring(0,10))
var counter=today.getDay()
//下一个
var下一天=今天
对于(var i=计数器;i0;i--){
prev_day.setDate(prev_day.getDate()-1)
周列表.推送(上一天.toISOString().子字符串(0,10))
}
console.log(周列表)
输出
['2019-08-01','2019-08-02','2019-08-03','2019-08-02','2019-08-01','2019-07-31','2019-07-30']
我得到的是一个不同的输出,而不是我所期望的,当我尝试更新第二天变量时,今天的变量会自动更改。这在javascript下很常见,否则我会做错什么
next\u day
是对今天所引用对象的引用。基础日期对象是相同的。如果你想要两个不同的对象,你应该构造一个新的日期
var next_day = new Date()
...
var prev_day = new Date()
const dates=(当前)=>{
常数周=[];
current.setDate((current.getDate()-current.getDay()+1));
对于(变量i=0;i<7;i++){
推(
新日期(当前).toISOString()子字符串(0,10)
);
current.setDate(current.getDate()+1);
}
返回周;
}
日志(日期(newdate())代码>谢谢,这一项工作可以解释而不是询问?此外,您是否可以声明您的方法正在改变参数currentyou are code从给定日期开始的未来7天,我需要从给定日期开始的当前7天,为任何给定日期更新。您可以使用任何给定的日期调用dates函数。例如:日期(新日期(2018年8月8日)
是的,这个works@JstnPwll的答案是正确的:下一天
,今天
,和上一天
都指向相同的基础对象;通过更改一个,您也在更改其他对象。我还想指出,这里的代码,无论是您自己的代码还是答案,都不会给出您所要求的确切输出当我遵循@JstnPwl的指令时,我得到了我所期望的输出