Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数获取一周中的所有日期_Javascript_Date - Fatal编程技术网

javascript函数获取一周中的所有日期

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,

我正在尝试获取一周中所有天数的数组,比如今天是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,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的指令时,我得到了我所期望的输出