javascript - 获取一周中的所有天数

标签 javascript arrays date datetime

我正在尝试创建一个函数来获取给定当前日期的一周中的所有日期。我有一个我认为有效的功能,直到我注意到如果星期几接近月底,例如二月,我会得到奇怪的数据。任何人都知道发生了什么以及如何解决它?

Console

function days(current) {
  var week = new Array();
  // Starting Monday not Sunday 
  var first = ((current.getDate() - current.getDay()) + 1);
  for (var i = 0; i < 7; i++) {
    week.push(
      new Date(current.setDate(first++))
    );
  }
  return week;
}

var input = new Date(2017, 1, 27);
console.log('input: %s', input);

var result = days(input);
console.log(result.map(d => d.toString()));
.as-console-wrapper{min-height:100%}

最佳答案

如果您不想使用 Moment.js 等其他库,您也可以稍微更改您的函数,然后它就可以工作了。试试这个:

function dates(current) {
    var week= new Array(); 
    // Starting Monday not Sunday
    current.setDate((current.getDate() - current.getDay() +1));
    for (var i = 0; i < 7; i++) {
        week.push(
            new Date(current)
        ); 
        current.setDate(current.getDate() +1);
    }
    return week; 
}
console.log(dates(new Date(2017, 1, 27)));

关于javascript - 获取一周中的所有天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43008354/

相关文章:

php - 处理不同时区的PHP服务器和MySQL服务器

html - 是否有一种优雅的方式在可以重复使用的新选项卡中打开外部链接?

javascript - react : Let child class assign state?

C++ 用余弦插值数组

php - 最有效的数据库日期存储方法?

java - ISO 时间出现意外输出 (8601)

javascript - 根据数组元素更新矩阵

javascript - $broadcast 在 ng Repeat 上被多次调用,即使从 Controller 调用一次

php - 如何使用分隔列和值的数组生成查询

PHP按字段名对多维数组进行排序