【问题标题】:how to get total weeks in a month jquery javascript [closed]如何获得一个月内的总周数 jquery javascript [关闭]
【发布时间】:2014-02-26 05:48:04
【问题描述】:

我想获取从日期开始的总周数

Get Weeks In Month Through Javascript

这是我为我的问题推荐的帖子。

function weekCount(year, month_number) {

    // month_number is in the range 1..12

    var firstOfMonth = new Date(year, month_number-1, 1);
    var lastOfMonth = new Date(year, month_number, 0);

    var used = firstOfMonth.getDay() + lastOfMonth.getDate();

    return Math.ceil( used / 7);
}

对于上面的代码,我刚刚发现了错误。一周从星期一开始。 bt 以上代码我认为从周日开始。所以它给出了 2014 年 6 月的错误。函数返回 5 bt 实际周数是 6。有人可以帮我吗?

【问题讨论】:

  • 你的对“一周”的定义是什么?在我的日历中,2014 年 6 月跨越 5 周,而不是 6 周:i.stack.imgur.com/KaVty.png
  • @MattBall 绝对错误。在我的日历中,当前月份是 6 周。考虑一下,如果 1st 在星期六到来,它会占用 1 周
  • @P5Coder no,当前月份(2014 年 2 月)跨越 5 周。 i.stack.imgur.com/x1QaJ.png
  • @MattBall bt 月可以有 6 周,这就是重点。如果一周从星期一开始,则 6 月可以考虑为 6 周的月份
  • @Chintan_chiku 你想要什么missing Sunday 情况。上面的代码适用于有效的几周(包括从任何一天而不是星期一开始的月份),你想从星期一开始获得几周,那么你必须制定自己的逻辑。

标签: javascript jquery function date


【解决方案1】:

以上代码将星期一视为一周的第一天。因此,如果您想使用星期日作为一周的第一天,只需将 firstDay 前移 1 即可。

var used = firstOfMonth.getDay() % 7 + 1 + lastOfMonth.getDate();

Fiddle here

var year = 2014;
var month_number = 3;
var firstOfMonth = new Date(year, month_number - 1, 1);
var lastOfMonth = new Date(year, month_number, 0);
var firstDay = firstOfMonth.getDay();
if (firstDay == 7)
  firstDay = 1;
else
  firstDay += 1;
var used = firstOfMonth.getDay() % 7 + 1 + lastOfMonth.getDate();
document.querySelector('div').innerHTML = Math.ceil(used / 7);
<div></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2022-11-13
    相关资源
    最近更新 更多