js 计算月/周的第一天和最后一天代码

为了计算 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技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript中的简写语法分享

    当我们在写JavaScript代码的时候,经常会用到一些简写语法来简化代码、提高开发效率。在本篇文章中,我们将会分享一些JavaScript中的简写语法,帮助大家学会如何更加高效地编写JavaScript代码。 一、三元运算符简写 三元运算符通常用于处理条件分支,可以把一个简单if-else语句变得更加简洁。在三元运算符的基础上,我们还可以使用它的简写形式。…

    JavaScript 2023年6月10日
    00
  • DOM 事件的深入浅出(一)

    以下是详细讲解“DOM 事件的深入浅出(一)”的完整攻略。 什么是 DOM 事件 DOM 事件指的是由 HTML 页面中的元素触发的事件。例如,当用户在网页上点击一个按钮时,会触发相应的事件处理程序。 DOM 事件的分类 DOM 事件按照产生的顺序可以分为三种类型: 冒泡型事件(Bubbling events):从目标元素开始向外冒泡,直到传递到文档根节点。…

    JavaScript 2023年6月10日
    00
  • 通过event对象的fromElement属性解决热区设置主实体的一个bug

    对于Web开发过程中,经常会涉及到鼠标移动事件,而其中一个常见的问题就是热区设置时容易出现主实体与热区之间相互触发的问题。这时,我们可以通过event对象的fromElement属性来解决这个问题。 什么是event对象? 在JavaScript中,event对象包含了当前页面中发生的事件的相关信息,例如事件类型、事件的目标元素等。当事件触发时,浏览器会自动…

    JavaScript 2023年6月10日
    00
  • JavaScript动态添加style节点的方法

    动态添加style节点是JavaScript编程中经常会用到的技巧,它可以帮助我们在运行时修改网页的布局样式,从而实现动态渲染的效果。以下是完整攻略: 1. 创建style节点 要添加样式到网页中,首先需要创建一个style节点: const style = document.createElement(‘style’); 这行代码创建了一个全新的style…

    JavaScript 2023年6月10日
    00
  • javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)

    JavaScript中类的定义及其方式 什么是类 类是面向对象编程中的基本概念之一,它是一个抽象的概念,用来描述一个共性的概念或一些具有相同属性和方法的对象的集合。 在ES6之前,JavaScript中并没有类的概念,但是通过函数和构造函数的方式,可以模拟出类的定义和使用。 定义类的方式 1. 使用函数 通过创建一个函数,来模拟出一个类,然后可以使用new关…

    JavaScript 2023年5月27日
    00
  • JavaScript深入理解节流与防抖

    下面我将为大家详细讲解“JavaScript深入理解节流与防抖”的完整攻略。 1. 什么是节流与防抖 1.1 节流 节流指的是在一定时间内,只执行一次特定操作。比如,在监听 scroll 事件时,用户不断地滚动页面,如果每次都响应该事件那么就会造成性能问题,因此可以通过节流的方式,让该事件在一定时间内只执行一次。 1.2 防抖 防抖指的是在频繁触发某个事件时…

    JavaScript 2023年6月10日
    00
  • Javascript 原型与原型链深入详解

    Javascript 原型与原型链深入详解 原型 在JavaScript中,每一个对象都有一个指向其原型的属性,称之为 __proto__,原型本身也是一个对象。在Javascript中使用函数构造对象时,函数本身也有一个原型属性,称之为 prototype。我们可以使用 Object.getPrototypeOf() 方法实现查找一个对象的原型。比如: l…

    JavaScript 2023年6月10日
    00
  • 基于Javascript实现文件实时加载进度的方法

    实现文件实时加载进度的方法本质上就是通过监听HTTP请求,统计请求发起时和请求完成时的时间,并通过计算来得出百分比进度。下面是实现文件实时加载进度的详细教程: 准备工作 首先,在页面中引入jQuery: <script src="//code.jquery.com/jquery-3.3.1.min.js"></scrip…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部