根据周数来划分一个月.JS

Splitting up a month based on number of weeks. JS

本文关键字:一个 JS 周数 划分      更新时间:2023-09-26

我正在做一个项目,在这个项目中,我需要找到哪些天是假期,并显示这些假期的特定消息。

对于一些节日,如圣诞节,它只是12月25日。但对于其他节日,如感恩节,这有点棘手,因为它是11月的第四个星期四。

我使用的方法是按周划分。

day = moment()
month = day.month() + 1
weeknum = Math.floor((day - 1) / 7) + 1
holiday2 = month + "/" + weeknum + "/" + day

今天恰好是哥伦布日,所以根据我所拥有的,它应该是'10/2/1'。第10个月第2周第1天。(10/12)。我得到的问题是,我现在有什么假期2,我得到:

10/206381035675/1444667249719

所以…我知道从技术上讲,我很接近于看到'10/2/1',但我得到了非常大的异常数字。

我的问题是2倍。我如何压缩这些数字,使我得到的不是10位数的响应,而是我需要的1或2位数?

是否有更好的方法来处理这个问题?

moment()返回一个日期对象。你需要得到与你已经得到的月份相似的日期。您可以使用.date()来完成此操作。

day = moment();
month = day.month() + 1;
date = day.date();
weeknum = Math.floor((date - 1) / 7) + 1;
holiday2 = month + "/" + weeknum + "/" + date;

由于日期被转换为整数的方式,您当前的解决方案不起作用。具体来说,它们被存储为自1970/01/01以来的毫秒数。

这个答案建议了获得周数的最佳方法:

var weeknum = Math.ceil(date / 7);