首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js选择最近6个月的月份

要在JavaScript中选择最近6个月的月份,可以通过以下步骤实现:

基本概念

  • Date对象:JavaScript中的Date对象用于处理日期和时间。
  • 月份索引:JavaScript中的月份是从0(1月)到11(12月)。

实现步骤

  1. 获取当前日期。
  2. 循环6次,每次减去一个月。
  3. 格式化日期为所需的月份格式。

示例代码

代码语言:txt
复制
function getLast6Months() {
    const months = [];
    let currentDate = new Date();

    for (let i = 0; i < 6; i++) {
        // 减去i个月
        currentDate.setMonth(currentDate.getMonth() - i);
        // 格式化日期为YYYY-MM
        const year = currentDate.getFullYear();
        const month = String(currentDate.getMonth() + 1).padStart(2, '0');
        months.push(`${year}-${month}`);
    }

    return months.reverse(); // 反转数组以获得从最近到最早的顺序
}

console.log(getLast6Months());

解释

  1. 初始化:创建一个空数组months来存储月份,并获取当前日期。
  2. 循环:循环6次,每次减去一个月,并将格式化后的日期添加到数组中。
  3. 格式化:使用getFullYear()获取年份,使用getMonth()获取月份(注意加1因为月份索引从0开始),并使用padStart确保月份是两位数。
  4. 反转数组:由于我们是倒序添加月份的,所以最后需要反转数组以获得从最近到最早的顺序。

应用场景

  • 数据可视化:在图表中显示最近6个月的数据。
  • 报表生成:生成包含最近6个月数据的报表。
  • 时间范围选择:在用户界面中提供最近6个月的时间范围选择。

可能遇到的问题及解决方法

  1. 月份溢出:如果当前月份是1月(索引0),减去一个月会变成上一年的12月(索引11)。JavaScript的Date对象会自动处理这种情况,所以不需要额外处理。
  2. 日期格式问题:确保月份是两位数,可以使用padStart方法。

通过上述方法,你可以轻松地在JavaScript中获取最近6个月的月份列表。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 使用 GraphQL 的 6 个月

    译文出自:掘金翻译计划[1] ---- 在使用 GraphQL 进行了 6 个月的后端项目开发后,我开始考量该技术是否适合在开发工作中使用。...GraphQL 为你的 API 中的数据提供了完整且易于理解的描述,并且让用户有权决定他们所需要的东西,仅此而已。...虽然加载器提供了一个加载各个独立值的 API,但是所有并发请求都将被合并起来才分送给你的批处理加载函数。这使你的应用程序可以安全地在整个应用程序进行数据的分发与获取。...公开数据和数据库模型之间的解耦 GraphQL 的一大优点是可以将数据库建模数据和给用户公开的数据解耦。...其次,前端可以使用模拟(mock)出来的 API 来测试代码。这样便不会阻碍前后端的开发工作,大大的提升了程序员的开发体验。 ?

    96920

    如何用js获取当前月份的天数

    js可以通过Date对象很方便的获取到每月的天数,在初始化Date对象时,我们可以通过这种方式: var d = new Date(2017,2,0); console.log(d.getDate())...; 以上代码可以在控制台输出2015年2月份的天数 Date对象月份从0开始,即0表示1月份,以此类推。...在上面的代码中,我们初始化d为三月份的第0天,由于JavaScript中day的范围为1~31中的值,所以当设为0时,会向前 一天,也即表示上个月的最后一天。...通过这种方式可以得到每个月份的天数,也不同区分闰年了,很方便~ 可以写个这样的函数,如下: function mGetDate(year, month){ var d = new Date(year...JavaScript中day的范围为1~31中的值,我们获取第N-1个月的第0天,就是N-1个月的最后一天,这样就获得了第N个月有多少天。

    12.5K50

    如何选择最佳的最近邻算法

    介绍一种通过数据驱动的方法,在自定义数据集上选择最快,最准确的ANN算法 ?...人工神经网络背景 KNN是我们最常见的聚类算法,但是因为神经网络技术的发展出现了很多神经网络架构的聚类算法,例如 一种称为HNSW的ANN算法与sklearn的KNN相比,具有380倍的速度,同时提供了...在本文中,我将演示一种数据驱动的方法,通过使用出色的an-benchmarks GitHub存储库,确定哪种ANN算法是自定义数据集的最佳选择。 ?...距离参数的允许选项是“euclidean”,“angular”,“hamming”或“jaccard”。距离度量的选择特定于您的问题。...将并行性的值更改为要使用的尽可能多的CPU内核。我使用的是16核CPU,因此我选择parallelism = 14来为其他任务保留2核。这将需要一些时间才能完成。

    2K30

    最近面试经常被问到的js手写题

    = 0 // 这里返回的函数是每次用户实际调用的防抖函数 // 如果已经设定过定时器了就清空上一次的定时器 // 开始一个新的定时器,延迟执行用户传入的方法 return function(....${char},出现了${num}次`);参考:前端手写面试题详细解答使用 reduce 求和arr = 1,2,3,4,5,6,7,8,9,10,求和let arr = [1,2,3,4,5,6,7,8,9,10...]arr.reduce((prev, cur) => { return prev + cur }, 0)arr = [1,2,3,[4,5,6],7,8,9],求和let arr = [1,2,3,4,5,6,7,8,9,10...ES6方法(使用数据结构集合):const array = [1, 2, 3, 5, 1, 5, 9, 1, 2, 8];Array.from(new Set(array)); // [1, 2, 3,...stringgetType(/123/); // -> regexpgetType(new Date()); // -> date实现 (5).add(3).minus(2) 功能例: 5 + 3 - 2,结果为 6Number.prototype.add

    52510

    简述Docker过去6个月的变化

    最近半年,围绕Docker的安全、存储、编排等方面发生了许多变化。这些变化一方面使得用户使用Docker更加方便,一方面也使得整个容器生态圈发生了“大地震“。...以下是从那之后Docker在多个技术方面和生态系统上变化的摘要。 技术方面的改进 仅仅6个月之前,Docker似乎还未准备好进军企业级市场。...6个月以前,手工配置Docker数据卷是给容器创建持久性存储的首选方案。...但如今情况已大不相同:6月份Red Hat发起了基于GlusterFs的”container-native”持久性存储项目,CoreOs发起了Torus,这是另一个持久性存储解决方案。...如果你依然认为Docker是一个已经很稳定的技术,那么是时候从最近6个月Docker的增强和改进方面来重新审视这个观点了。

    81580

    6月份Github上最热门的Java开源项目!

    1、halo 这是一个轻快,简洁,功能强大,使用Java开发的博客系统。...提高UI能力的同时,降低前后分离的开发成本,JeecgBoot还独创在线开发模式,No代码概念,一系列在线智能开发:在线配置表单、在线配置报表、在线设计流程等等。...学习本系列知识之前,如果你完全没接触过 MQ、ES、Redis、Dubbo、Hystrix 等,那么我建议你可以先在网上搜一下每一块知识的快速入门,跟着入门 Demo 玩一下,然后再开始每一块知识的学习...,这样效果更好 6、mall-learning 项目地址:https://github.com/macrozheng/mall-learning Star 335 mall学习教程,架构...7、tutorials 项目地址:https://github.com/eugenp/tutorials Star 15193 该项目是一系列小而专注的教程,每个教程都涵盖一个明确的开发领域

    74830

    推荐 | 6月份最值得看的 Java 技术干货

    6月过完了,这一年都 TM 过了一半了,大家都回想下自己这大半年,你都收获了什么??技术有提升吗?对象搞定了吗? 说多了都是泪,唯有 WIFI、空调、西瓜、足球能够解忧。。 话说中国队怎么还不上场?...先让让,把天台先让给 6 月暴跌股民们。 还不如看下 6 月的 Java 干货,提升技术实力是正事。另外,文末送出 10 本书,千万不要错过! 我是没戏,看完我现在感觉好多了。 ?...Java 11 快要来了,编译 & 运行一个命令搞定 Java 10 实战第 1 篇:局部变量类型推断 一道非常棘手的面试题:i++ 是线程安全的吗?...Intellij IDEA 那些隐藏好用的小技巧 秒杀系统设计的 5 个要点 Java 中的伪共享详解及解决方案 高可用高并发的 9 种技术架构 达到年薪 40W 必需掌握的技术 这 30 个常用的 Maven...命令你必须熟悉 MySQL数据库开发的 36 条军规 推荐一个实用的 .gitignore 文件 Github 嫁入微软豪门 我面试过的一个最奇葩的 Java 程序猿 我错了,以后少聊程序猿,多聊技术

    66620

    2018年6月份GitHub上最热门的开源项目

    本篇文章为大家盘点了6月份最热门的GitHub 项目,一起来看看你都知道哪些,或者有哪些你已经在使用的了。...2 Vue https://github.com/vuejs/vue Star 105811 Vue.js 是构建 Web 界面的 JavaScript 库,提供数据驱动的组件,还有简单灵活的 API,...主要特性: ● 可扩展的数据绑定 ● 将普通的 JS 对象作为 model ● 简洁明了的 API ● 组件化 UI 构建 ● 配合别的库使用 3 React https://github.com/facebook...,包含了很多自己动手的实践方法 6 awesome-design-patterns https://github.com/DovAmir/awesome-design-patterns Star 7031...11 pollyjs https://github.com/Netflix/pollyjs Star 5539 Polly.JS 是 Netflix 开源的一个独立、框架无关的 JavaScript 库

    1K50

    JS offsetParent属性:获取最近的上级定位元素

    在js中,offsetParent 属性表示最近的上级定位元素。...要获取相对父级元素的位置,可以先判断 offsetParent 属性是否指向父元素,如果是,则直接使用 offsetLeft 和 offsetTop 属性获取元素相对于父元素的距离;否则分别获得当前元素和父元素距离窗口的坐标...//获取指定元素距离父元素左上角的偏移坐标//参数:e表示获取位置的元素//返回值:返回对象直接量,其中属性x表示x轴偏移距离,属性y表示y轴偏移距离function getP (e) { if...; var y = o.y - p.y; } return { //返回当前元素距离父元素的坐标 "x" : x, "y" : y },}下面调用该扩展函数获取指定元素相对父元素的偏移坐标...var box = document.getElementById("box");var o = getP (box); //调用扩展函数获取元素对应父元素的偏移坐标console.log(o.x);

    7.8K40

    js月份和日期前补0的一种简单实现方法

    问题 我的博客创建是通过借助obisidian的插件和脚本来生成,创建名称是年月日加时间,国庆期间进行文件名统一重新管理,按【年月日+标题】来命名。...js脚本月日字段生成默认是没有补0的,也就是如果1位的话显示是这样的1月1号:1-1,而不是01-01,这样整体就不统一。 js日期字段 查了一下资料,找到了一种简单的解决方法。...ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。  ...1 2 3 4 5 6 7 8 9 //用法   var month = (d.getMonth() + 1).toString().padStart(2, '0'); //需要tosting转换;指头部需要俩位数

    73620

    Java 练习:编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。月份为 1、3、5、7、8、10、12 时,天数为 31 天。月份为 4、6、9、11 时,天数为 3

    文章目录 一、练习题目 二、使用 switch 语句实现代码 三、将代码改写回 if else 的选择结构 一、练习题目 编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数...月份为 1、3、5、7、8、10、12 时,天数为 31 天。 月份为 4、6、9、11 时,天数为 30 天。 月份为 2 时,若为闰年,天数为 29 天,否则,天数为 28 天。...case 1: case 3: case 5: case 7: case 8: case 10: case 12:day = 31;break; case 4: case 6:...一个非 0 的状态代码表示非正常结束。...例如,我们输入月份为 13 时,程序终止并输出报错信息,如下图所示: 三、将代码改写回 if else 的选择结构 我们将代码改写回 if else 的选择结构,代码如下: package rjxy2019

    1.7K30

    Node.js 版本知多少?又该如何选择?

    的版本发布能够有条不絮,这样开发者才能更好的选择。...首先要知道每年的 4 月、10 月分别发布偶数、奇数版本,下面是过程说明: 最近的一个偶数版本在 4 月份发布之后会持续 6 个月。...待 10 月份会发布一个奇数版本,最近的偶数版本会进入 Active LTS 版本持续时间为 18 个月,这期间几乎不会有不兼容的大功能更新,开发者也可以放心升级到 Active LTS 版本。...开发者如何选择 读完以上内容,我们已经对 Node.js 的版本有了一定的认识,这里总结下,做为一个开发者我们如何去选择?...生产环境 生产环境最重要的是稳定,这是我们选择版本的前提条件,因此我们可以在每年发布 Active LTS 版本的时候进行跟进升级,LTS 总共的时间为 Active LTS 的 18 个月 + Maintenance

    7.4K21

    【JS】222-JS 函数的 6 个基本术语

    Lambda演算是由图灵完成的,它代表了能够构建任何图灵机的通用计算模型。 Lambda expressions(匿名函数表达式) 是函数式编程的基石。...柯里化函数非常适合提高代码的可重用性和函数式结构。想了解更多,请参考: JavaScript ES6 curry functions with practical examples。...这意味着如果你在整个应用程序中的不同的一百个地放调用一个纯函数相同的参数一百次,该函数始终返回相同的值。纯函数不会更改或读取外部状态。...push的返回值是一个数字索引。 另外,Concat接受数组并将其与另一个数组连接,从而产生一个没有副作用的全新数组。然后返回两个数组串联后的新数组。...你可以通过lambda演算用啤酒来招待你的朋友,可以通过有趣的数学逻辑来纠正你的家人。

    62950
    领券