使用纯javascript获取下周的开始和结束日期

时间:2017-02-14 14:30:49

标签: javascript date typescript

我使用moment.js来计算下周的开始日期和结束日期。但是现在我因为一些缩小问题而将其删除了。

我可以按照以下方式获得本周的开始和结束日期,

var today = new Date; 
var first = today.getDate() - today.getDay(); 
(this.fromDate = new Date(today.setDate(first)));
(this.toDate  = new Date(today.setDate(last)));

如何找到下周的开始和结束日期?

4 个答案:

答案 0 :(得分:2)

您可以使用getFullYear()getMonth()getDate()方法实现此目标。



function getWeekBegin() {
   var now = new Date();
   var next = new Date(now.getFullYear(), now.getMonth(), now.getDate()+(7 - now.getDay()));
   return next;
}
var firstDay = getWeekBegin();
console.log("First day: "+firstDay);
var lastDay=firstDay.setDate(firstDay.getDate() + 6);
console.log("Last day: "+new Date(lastDay));




答案 1 :(得分:1)

不是你所追求的100%,但如果你稍微修改一下,你应该能够弄清楚如何

function test() {
    var today = new Date; 
    alert(getMonday(today));
}
function getMonday( date ) {
    date.setHours((24*7));
    var day = date.getDay() || 7;  
    if( day !== 1 ) 
        date.setHours(-24 * (day - 1)); 
    return date;
}

刚刚编辑了答案,这应该可以让你在下一个星期一的日期

答案 2 :(得分:0)

在本周开始的7天内总结下一周的开始;为了得到一周的结束,在本周开始时增加6天。



printf("%zu %u\n", strlen(s)-strlen(x), c);




答案 3 :(得分:0)

以下简化了代码并提供了一些解释。 setDate 方法修改日期并返回新的时间值,因此可以用来修改日期并一次创建副本。



// Get current date
var d = new Date();

// Set to next Sunday and copy
var startOfWeek = new Date(d.setDate(d.getDate() + 7 - d.getDay()));

// Set to the following Saturday
d.setDate(d.getDate() + 6);

console.log('Start of week: ' + startOfWeek.toString());
console.log('End of week  : ' + d.toString());

// The following shows the dates formatted and in the host default language
// Support for toLocaleString options may be lacking though
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
console.log('Start of week: ' + startOfWeek.toLocaleString(undefined, options));
console.log('End of week  : ' + d.toLocaleString(undefined, options));