MooTools:获取给定一周的第一天和最后一天

MooTools: Get the first and last days of a given week

我在 JavaScript 方面相对缺乏经验(我们在这里使用 MooTools),我遇到了一个问题:

有没有快速获取给定周的第一个和最后一个日期的方法? 例如2015 年第 17 周从 4 月 20 日星期一开始到 4 月 26 日星期日结束。

我的目标是找出给定的一周是否在同一个月开始和结束(第 18 周不会,因为它从 4 月 27 日开始到 5 月 3 日结束)。

非常感谢您提供示例方面的帮助或为我提供正确的文档。 我已经找了一段时间并没有找到类似的东西,而且我发现 MooTools 文档很差...

Boa noite Filipe,

要做到这一点,您不需要 MooTools。你可以用 Vanilla JS 来做。

这是一个想法:

function dayAnalizer(str) {
    var date = new Date(str).getTime();
    var weekAfter = date + 7 * 24 * 60 * 60 * 1000;
    return new Date(date).getMonth() == new Date(weekAfter).getMonth();
}

console.log(dayAnalizer('10-05-2015')); // true
console.log(dayAnalizer('13-05-2015')); // false
console.log(dayAnalizer('16-05-2015')); // false

jsFiddle: http://jsfiddle.net/1g4bvgjg/

基本上它获取一个字符串格式的日期并将其转换为时间戳(毫秒),然后创建另一个提前 1 周的日期。最后比较两者是否同月

如果您需要知道一年中的某个星期是否在同一个月开始和结束,您可以使用类似这样的方法:

function weekAnalyser(week, year) {
    var days = (1 + (week - 1) * 7); // 1st of January + 7 days for each week
    var date = new Date(year, 0, days);
    var dayOfWeek = date.getDay(); // get week day
    var firstDayOfWeek = date.getTime() - (dayOfWeek) * 60 * 60 * 24 * 1000); // rewind to 1st day of week
    var endOfWeek = firstDayOfWeek + 6 * 24 * 60 * 60 * 1000;
    return new Date(firstDayOfWeek).getMonth() == new Date(endOfWeek).getMonth();
}

jsFiddle: http://jsfiddle.net/zfassz29/


Ps。欢迎使用葡萄牙语 Whosebug:https://pt.whosebug.com/