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做随机点名程序的完整攻略。 一、前期准备 在开始编写随机点名程序之前,需要确定以下问题: 需要点名的人员名单存储在什么地方? 点名程序的界面如何设计? 点击“点名”按钮后,程序如何读取名单并实现随机选择? 随机选择后,如何将选中的人员信息展示在界面上? 在回答这些问题之后,就可以开始编写代码了。 二、程序实现 1. 存储名单 我…

    JavaScript 2023年5月28日
    00
  • 使用 JavaScript 创建并下载文件(模拟点击)

    使用 JavaScript 可以很方便地创建并下载文件,而模拟点击则是其中一种实现方式。以下是一个完整的攻略,涵盖了实现方法、示例说明以及注意事项。 实现方法 创建用于下载的数据 首先需要创建一个用于下载的数据,可以是文本、二进制数据或者图片等。以文本数据为例,可以使用以下方法创建: const data = "Hello, world!&quot…

    JavaScript 2023年5月27日
    00
  • JavaScript那些不经意间发生的数据类型自动转换

    JavaScript那些不经意间发生的数据类型自动转换 在使用JavaScript时,我们可能会遇到一些数据类型转换的问题。这些数据类型转换通常是自动发生的,而且往往只有在出现错误时才会引起我们的注意。本文将介绍哪些情况下会发生数据类型转换,并给出一些例子。 基础数据类型的自动转换 字符串转换 当JavaScript需要处理不同数据类型时,会自动进行类型转换…

    JavaScript 2023年6月10日
    00
  • Vue中如何把hash模式改为history模式

    Vue中可以通过修改路由模式的方式,从默认的hash模式改为history模式。下面是具体的操作步骤: 1. 修改路由模式 在Vue项目中找到router文件夹,打开index.js文件,找到路由实例的创建代码部分(通常代码会类似如下): import Vue from ‘vue’ import Router from ‘vue-router’ import…

    JavaScript 2023年6月11日
    00
  • javascript实现10个球随机运动、碰撞实例详解

    很高兴能够为你介绍 “JavaScript实现10个球随机运动、碰撞实例详解” 的完整攻略。该攻略详细介绍了如何使用JavaScript实现10个球的随机运动和碰撞效果。下面我们来一步步详细讲解该攻略的实现过程。 HTML文件 首先,我们需要在HTML文件中创建一个 <canvas> 元素用于绘制球的运动轨迹。代码如下: <!DOCTYPE…

    JavaScript 2023年6月10日
    00
  • 关于js new Date() 出现NaN 的分析

    关于 JS 中 new Date() 返回 NaN 的情况,一般有以下几个原因: 1. 传递给 Date() 函数的字符串格式不正确 如果传递给 Date() 函数的字符串格式不正确,那么直接调用 new Date() 后会返回 Invalid Date,即不合法的日期对象,而在进行一些操作时会得到 NaN 的结果。 例如: var date = new D…

    JavaScript 2023年6月10日
    00
  • Ajax异步请求技术实例讲解

    Ajax异步请求技术实例讲解 Ajax是一种在不重新加载网页的情况下,能够实现与服务器进行数据交互的技术,它可以帮助我们通过JavaScript向服务器发起异步请求,并在请求成功后执行一定的操作,例如更新页面内容等。 Ajax的基本使用方法 在JavaScript中使用Ajax,需要用到XMLHttpRequest对象,通过该对象来向服务器发起请求并获取响应…

    JavaScript 2023年6月11日
    00
  • JavaScript的jQuery库中ready方法的学习教程

    下面是关于”JavaScript的jQuery库中ready方法的学习教程”的完整攻略: 一、jQuery库中的ready方法 ready() 方法用于在文档完成加载后执行指定的函数。该方法为 jQuery 库提供,并且对于处理 JS 和 HTML 的交互非常重要。 当 HTML 文档被加载,并解析完毕后,可执行像 jQuery.ready() 函数这样的代…

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