使用纯javascript获取下周的开始和结束日期
我使用的是moment.js来计算下周的开始日期和结束日期。但现在我已经因为一些缩小问题而将其删除。使用纯javascript获取下周的开始和结束日期
我能够如下得到这个星期的开始和结束日期,
var today = new Date;
var first = today.getDate() - today.getDay();
(this.fromDate = new Date(today.setDate(first)));
(this.toDate = new Date(today.setDate(last)));
如何寻找下周开始和结束日期?
算了笔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())
不是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;
}
刚才编辑的答案,这应该让你在下周一约会
你不应该添加天添加由于夏令时的变化,并非所有日子的时间都是24小时。 – RobG
你可以使用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));
lastDay不是日期类型 – Sajeetharan
@RobG,我更新了我的答案。谢谢你的观点。 –
以下简化了代码,并提供一些解释。 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));
你可以用我的答案代码到其他的问题吗? https://stackoverflow.com/questions/42158971/how-to-find-the-dates-of-coming-saturday-and-sunday-from-todays-date-in-typescr – Calum