为了计算 JS 中的月/周的第一天和最后一天,可以使用 Date 对象的一些方法和一些 JavaScript 的基本运算技巧。具体攻略如下:
1. 计算月份的第一天和最后一天
1.1 获取当月的第一天
通过 Date 对象中的 getFullYear()
、getMonth()
和 setDate()
方法可以获取当月的第一天,代码如下:
const date = new Date();
const year = date.getFullYear();
const month = date.getMonth();
const firstDay = new Date(year, month, 1);
上述代码先创建了一个日期对象,然后使用 getFullYear()
方法获取该对象表示的年份,使用 getMonth()
方法获取该对象表示的月份,最后使用 setDate()
方法将日期设置为 1,然后创建一个新的 Date 对象表示当月的第一天。
1.2 获取当月的最后一天
通过 Date 对象中的 getFullYear()
、getMonth()
和 getDate()
方法可以获取当月的最后一天,代码如下:
const date = new Date();
const year = date.getFullYear();
const month = date.getMonth();
const lastDay = new Date(year, month + 1, 0);
上述代码先创建了一个日期对象,然后使用 getFullYear()
方法获取该对象表示的年份,使用 getMonth()
方法获取该对象表示的月份,再将月份加 1,天数设置为 0,最后创建一个新的 Date 对象表示当月的最后一天。
2. 计算周的第一天和最后一天
2.1 获取当前日期所在周的第一天
通过 Date 对象中的 getDay()
方法和一些基本运算技巧,可以获取当前日期所在周的第一天。代码如下:
const date = new Date();
const day = date.getDay();
const diff = date.getDate() - day + (day === 0 ? -6 : 1);
const firstDay = new Date(date.setDate(diff));
上述代码先创建了一个日期对象,然后使用 getDay()
方法获取该对象表示的周几,再通过一些基本运算技巧计算出当前日期所在周的第一天,并创建一个新的 Date 对象表示该日期。
2.2 获取当前日期所在周的最后一天
同样通过 Date 对象中的 getDay()
方法和一些基本运算技巧,可以获取当前日期所在周的最后一天。代码如下:
const date = new Date();
const day = date.getDay();
const diff = date.getDate() - day + 6;
const lastDay = new Date(date.setDate(diff));
上述代码的基本逻辑与获取当前日期所在周的第一天相同,只是在计算的时候将起始日期加上了 6 天,从而得到当前日期所在周的最后一天。
示例说明
下面的示例演示了上述代码的使用过程:
// 获取当月的第一天
const date = new Date();
const year = date.getFullYear();
const month = date.getMonth();
const firstDay = new Date(year, month, 1);
console.log(`本月的第一天是 ${firstDay.toLocaleDateString()}`);
// 获取当月的最后一天
const lastDay = new Date(year, month + 1, 0);
console.log(`本月的最后一天是 ${lastDay.toLocaleDateString()}`);
// 获取本周的第一天
const day = date.getDay();
const diff = date.getDate() - day + (day === 0 ? -6 : 1);
const firstDayOfWeek = new Date(date.setDate(diff));
console.log(`本周的第一天是 ${firstDayOfWeek.toLocaleDateString()}`);
// 获取本周的最后一天
const diff2 = date.getDate() - day + 6;
const lastDayOfWeek = new Date(date.setDate(diff2));
console.log(`本周的最后一天是 ${lastDayOfWeek.toLocaleDateString()}`);
运行上述代码后,会输出当前日期所在月的第一天、最后一天以及当前日期所在周的第一天和最后一天。
输出结果:
本月的第一天是 2022/2/1
本月的最后一天是 2022/2/28
本周的第一天是 2022/2/28
本周的最后一天是 2022/3/6
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 计算月/周的第一天和最后一天代码 - Python技术站