我在JavaScript方面相对缺乏经验(我们在这里使用MooTools)而且我遇到了一个问题:
有没有快速获取给定周的第一个和最后一个日期的方法? 例如2015年第17周开始于4月20日星期一,并于4月26日星期日结束。
我的目标是找出某一周是否在同一个月开始和结束(第18周不会,因为它从4月27日开始到5月3日结束)。
非常感谢任何有关示例的帮助或指向正确的文档。 我一直在找一段时间没找到这样的东西,我发现MooTools的文档很差......
答案 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
基本上它以字符串格式获取日期并将其转换为时间戳(毫秒),然后在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();
}
聚苯乙烯。欢迎使用葡萄牙语Stackoverflow:https://pt.stackoverflow.com/