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

时间:2015-04-19 19:42:52

标签: javascript date mootools weekday

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

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

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

非常感谢任何有关示例的帮助或指向正确的文档。 我一直在找一段时间没找到这样的东西,我发现MooTools的文档很差......

1 个答案:

答案 0 :(得分:1)

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/


聚苯乙烯。欢迎使用葡萄牙语Stackoverflow:https://pt.stackoverflow.com/