获取当前周的开始日期和结束日期(星期一从星期一开始,到星期日结束)

Vis*_*hnu 17 javascript date

我想显示当前周的开始日期和结束日期.(周开始=周一,周末=周日)我设法显示星期一.

但是我无法得到星期天的约会.如果有人有解决方案,请发帖给我.

小智 31

<script>
Date.prototype.getWeek = function(start)
{
        //Calcing the starting point
    start = start || 0;
    var today = new Date(this.setHours(0, 0, 0, 0));
    var day = today.getDay() - start;
    var date = today.getDate() - day;

        // Grabbing Start/End Dates
    var StartDate = new Date(today.setDate(date));
    var EndDate = new Date(today.setDate(date + 6));
    return [StartDate, EndDate];
}

// test code
var Dates = new Date().getWeek();
alert(Dates[0].toLocaleDateString() + ' to '+ Dates[1].toLocaleDateString())
</script>
Run Code Online (Sandbox Code Playgroud)

我相信这有效.

  • 只是尝试打印开始日期和结束日期今天你会得到错误的答案.它返回第30个星期五作为开始日期和第5个8月8日作为结束日期.这是开始和结束日期是不同月份它给出错误答案的情况. (2认同)

Rob*_*obG 11

以下功能可以解决问题:

// return an array of date objects for start (monday)
// and end (sunday) of week based on supplied 
// date object or current date
function startAndEndOfWeek(date) {

  // If no date object supplied, use current date
  // Copy date so don't modify supplied date
  var now = date? new Date(date) : new Date();

  // set time to some convenient value
  now.setHours(0,0,0,0);

  // Get the previous Monday
  var monday = new Date(now);
  monday.setDate(monday.getDate() - monday.getDay() + 1);

  // Get next Sunday
  var sunday = new Date(now);
  sunday.setDate(sunday.getDate() - sunday.getDay() + 7);

  // Return array of date objects
  return [monday, sunday];
}

// Mon Nov 12 2012 00:00:00
// Sun Nov 18 2012 00:00:00
alert(startAndEndOfWeek(new Date(2012,10,14)).join('\n'));
Run Code Online (Sandbox Code Playgroud)


Raw*_*man 11

试试这个:

var current = new Date();     // get current date    
var weekstart = current.getDate() - current.getDay() +1;    
var weekend = weekstart + 6;       // end day is the first day + 6 
var monday = new Date(current.setDate(weekstart));  
var sunday = new Date(current.setDate(weekend));
Run Code Online (Sandbox Code Playgroud)