繁体   English   中英

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

[英]Get next week's start and end date using pure javascript

我正在使用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)));

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

您可以使用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)); 

不是您的工作成果的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;
}

刚刚编辑了答案,这应该可以让您在下一个星期一约会

距本周初只有7天,下周即可开始; 要获得一周的结束,请在周开始前增加6天。

 var date = new Date; var nextWeekStart = date.getDate() - date.getDay() + 7; var nextWeekFrom = new Date(date.setDate(nextWeekStart)); var nextWeekEnd = date.getDate() - date.getDay() + 6; var nextWeekTo = new Date(date.setDate(nextWeekEnd)); console.log('nextWeekFrom: ' + nextWeekFrom.toString()) console.log('nextWeekTo : ' + nextWeekTo.toString()) 

以下内容简化了代码并提供了一些解释。 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)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM