Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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 循环查看daterange中的月份获取第一个和最后一个日期_Javascript_Date - Fatal编程技术网

Javascript 循环查看daterange中的月份获取第一个和最后一个日期

Javascript 循环查看daterange中的月份获取第一个和最后一个日期,javascript,date,Javascript,Date,我正在node.js中构建一个过滤器,我需要在给定的日期范围内循环几个月,并获取该月的第一天和最后几天 我每次尝试都是在头几个月后开始的 结果循环1年的示例 2019-01-01 2019-01-31 2019-02-01 2019-02-28 2019-03-01 2019-03-31 2019-03-31 2019-04-29 2019-04-30 2019-05-30 2019-05-31 2019-06-29 2019-06-30 2019-07-30 2019-07-31 2019-0

我正在node.js中构建一个过滤器,我需要在给定的日期范围内循环几个月,并获取该月的第一天和最后几天

我每次尝试都是在头几个月后开始的

结果循环1年的示例

2019-01-01 2019-01-31
2019-02-01 2019-02-28
2019-03-01 2019-03-31
2019-03-31 2019-04-29
2019-04-30 2019-05-30
2019-05-31 2019-06-29
2019-06-30 2019-07-30
2019-07-31 2019-08-30
2019-08-31 2019-09-29
2019-09-30 2019-10-31
2019-11-01 2019-11-30
2019-12-01 2019-12-31
到最后,它似乎回到了日期


有什么想法吗?

因为白天的灯光可以节省时间,所以它们会熄灭。创建日期时,也只需输入小时

for(let a=0;a<12;a++)
{
  let year = new Date().getFullYear()
  let firstDay = new Date(Date.UTC(year, a , 1));
  let lastDay = new Date(Date.UTC(year, a + 1, 0));
  document.body.innerHTML += `<div>${firstDay.toISOString().substring(0, 10)} - ${lastDay.toISOString().substring(0, 10)}</div>`;
} 
**更新


根据下面罗布的建议。编辑以完全删除时区偏移。

我想我爱你,谢谢你,这正是问题所在。对于时区偏移为12或更大的地方,此操作将失败。如果使用toISOString格式化日期,还应使用UTC方法生成日期。然后您就不必担心时区偏移,例如
新日期(Date.UTC(2019,0,1)).toISOString().substr(0,10)
2019-01-01 - 2019-01-31
2019-02-01 - 2019-02-28
2019-03-01 - 2019-03-31
2019-04-01 - 2019-04-30
2019-05-01 - 2019-05-31
2019-06-01 - 2019-06-30
2019-07-01 - 2019-07-31
2019-08-01 - 2019-08-31
2019-09-01 - 2019-09-30
2019-10-01 - 2019-10-31
2019-11-01 - 2019-11-30
2019-12-01 - 2019-12-31