【问题标题】:MooTools: Get the first and last days of a given weekMooTools:获取给定一周的第一天和最后几天
【发布时间】:2015-06-26 09:57:07
【问题描述】:

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

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

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

非常感谢任何有关示例的帮助或将我指向正确的文档。 我已经找了一段时间了,还没有找到类似的东西,而且我发现 MooTools 的文档很差......

【问题讨论】:

  • MooTools 提供了一种简单的方法来了解给定日期属于哪一周 (Date.get('week')),但没有明显的方法可以获取给定一周的结束日期。
  • 我想我会通过在 PHP 中创建包含每周开始和结束日期的隐藏字段来管理这个,然后用 JS 获取这些值。

标签: javascript date mootools weekday


【解决方案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/

【讨论】:

  • 然而,这与 OP 的问题不太匹配。这将测试“日期”和“日期 + 1 周”是否在同一个月内。但这与测试 2014 年第 32 周是否跨越一个月边界不同。 (这很复杂,原因有很多,包括一周的第一天的正确定义取决于语言环境)
  • @SMcCrohan 非常正确。我读的问题太快了。编辑并添加了该功能,以便 OP 可以适应。
  • 感谢@Sergio,您的 weekAnalyser 功能运行良好。你,我得把它调高一点,因为它似乎假设一周的第一天是星期天(它把第 23/2015 周作为两个月,因为第 23/2015 周从 6 月 1 日星期一开始,它应该返回 true)。
  • @FilipeCastanheira 是的,瑞典的一周从星期日开始 :) 但你是对的,在 PT 是星期一,我应该知道 :P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多