常用的一些日期的获取及判断

  1. 自定义的Date对象的原型方法,通过为Date对象添加一个名为format的方法,可以将日期格式化为指定的字符串格式
function handleInitDate () {Date.prototype.format = function (format) {var o = {"M+": this.getMonth() + 1, //month"d+": this.getDate(),    //day"h+": this.getHours(),   //hour"m+": this.getMinutes(), //minute"s+": this.getSeconds(), //second"q+": Math.floor((this.getMonth() + 3) / 3),  //quarter"S": this.getMilliseconds() //millisecond}if (/(y+)/.test(format)) format = format.replace(RegExp.$1,(this.getFullYear() + "").substr(4 - RegExp.$1.length));for (var k in o) if (new RegExp("(" + k + ")").test(format))format = format.replace(RegExp.$1,RegExp.$1.length == 1 ? o[k] :("00" + o[k]).substr(("" + o[k]).length));return format;}
}
  • 使用示例
    • 全局引入调用后
var currentDate = new Date();
console.log(currentDate.format("yyyy-MM-dd hh:mm:ss")); // 格式化为年-月-日 时:分:秒的形式
  1. 判断是否为当月的第一天
function handleJudgeIsFirstDay() {// 获取当前日期var currentDate = new Date();// 获取当月的第一天var firstDayOfMonth = new Date(currentDate.getFullYear(),currentDate.getMonth(),1);// 判断是否是当月的第一天var isFirstDayOfMonth =currentDate.getDate() === firstDayOfMonth.getDate();return isFirstDayOfMonth
}
  1. 判断是否为当月的最后一天
function isLastDayOfMonth() {const today = new Date();const nextMonth = new Date(today.getFullYear(), today.getMonth() + 1, 1);return today.getDate() === nextMonth.getDate() - 1;
}console.log(isLastDayOfMonth());
  1. 获取某个月的第一天和最后一天
function getFirstAndLastDay(year, month) {var firstDay = new Date(year, month, 1);var lastDay = new Date(year, month + 1, 0);return {firstDay: firstDay,lastDay: lastDay};
}// 调用函数获取2023年12月的第一天和最后一天
var result = getFirstAndLastDay(2023, 11); // 11表示12月
console.log("第一天: " + result.firstDay.getDate());
console.log("最后一天: " + result.lastDay.getDate());
  1. 获取本月,上月,下月的第一天和最后一天
function getFirstAndLastDay(year, month) {var firstDay = new Date(year, month, 1);var lastDay = new Date(year, month + 1, 0);return {firstDay: firstDay,lastDay: lastDay};
}function getLastAndNextMonthFirstAndLastDay() {var today = new Date();var thisYear = today.getFullYear();var thisMonth = today.getMonth();// 获取上个月的年份和月份var lastMonthYear = (thisMonth === 0) ? thisYear - 1 : thisYear;var lastMonth = (thisMonth === 0) ? 11 : thisMonth - 1;// 获取下个月的年份和月份var nextMonthYear = (thisMonth === 11) ? thisYear + 1 : thisYear;var nextMonth = (thisMonth + 1) % 12;var lastMonthResult = getFirstAndLastDay(lastMonthYear, lastMonth);var thisMonthResult = getFirstAndLastDay(thisYear, thisMonth);var nextMonthResult = getFirstAndLastDay(nextMonthYear, nextMonth);return {lastMonth: {firstDay: lastMonthResult.firstDay,lastDay: lastMonthResult.lastDay},thisMonth: {firstDay: thisMonthResult.firstDay,lastDay: thisMonthResult.lastDay},nextMonth: {firstDay: nextMonthResult.firstDay,lastDay: nextMonthResult.lastDay}};
}// 调用函数获取上个月、这个月和下个月的第一天和最后一天
var result = getLastAndNextMonthFirstAndLastDay();
console.log("上个月的第一天: " + result.lastMonth.firstDay.getDate());
console.log("上个月的最后一天: " + result.lastMonth.lastDay.getDate());
console.log("这个月的第一天: " + result.thisMonth.firstDay.getDate());
console.log("这个月的最后一天: " + result.thisMonth.lastDay.getDate());
console.log("下个月的第一天: " + result.nextMonth.firstDay.getDate());
console.log("下个月的最后一天: " + result.nextMonth.lastDay.getDate());
  1. 获取某个月有几天
function getDaysInMonth(year, month) {return new Date(year, month + 1, 0).getDate();
}var year = 2023;
var month = 11; // 月份从 0 开始,11 表示十二月var daysInMonth = getDaysInMonth(year, month);
console.log("2023年12月有 " + daysInMonth + " 天");
  1. 获取今年有几天
function getDaysInYear(year) {return new Date(year, 12, 0).getDate();
}var year = (new Date()).getFullYear();var daysInYear = getDaysInYear(year);
console.log(year + "年有 " + daysInYear + " 天");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

附录A 指令集基本原理

1. 引言 本书主要关注指令集体系结构4个主题: 1. 提出对指令集进行分类的方法,并对各种方法的优缺点进行定性评估; 2. 提出并分析一些在很大程度上独立于特定指令集的指令集评估数据。 3. 讨论语言与编译器议题以及…

shell编程系列(9)-使用cut选择列

文章目录 前言使用cut选择列选择特定的列 结语 前言 前面的文章介绍了sed命令,sed可以帮我们处理文本列,这边文章介绍cut命令,cut命令可以帮我们选择想要的列,在文本处理时候结合sed命令,就可以精准定位了。 cut命令是…

利用 NRF24L01 无线收发模块实现传感器数据的无线传输

NRF24L01 是一款常用的无线收发模块,适用于远程控制和数据传输应用。本文将介绍如何利用 NRF24L01 模块实现传感器数据的无线传输,包括硬件的连接和配置,以及相应的代码示例。 一、引言 NRF24L01 是一款基于 2.4GHz 射频通信的低功耗无线收发…

如何使用windows Terminal终端连接远程Linux服务器

近接触到了zsh这个shell,所以在ubuntu系统上反复折腾,终于在ubuntu-desktop系统上使用oh-my-zsh和powerlevel10k配置好了一个比较好看的终端(个人认为挺好看,勿喷)。 但是在从windwos的Mobaxterm登录ubuntu查看时&…

无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv5开发构建电力设备螺母缺销小目标检测识别系统

传统作业场景下电力设备的运维和维护都是人工来完成的,随着现代技术科技手段的不断发展,基于无人机航拍飞行的自动智能化电力设备问题检测成为了一种可行的手段,本文的核心内容就是基于YOLOv7来开发构建电力设备螺母缺销检测识别系统&#xf…

从自动化、数字化到智能化,鸿蒙与制造业的双向奔赴

终端万物互联,商业竞争瞬息万变,制造企业面临着数字化转型与产品智能化升级的双重考验。鸿蒙操作系统以统一操作系统方案,可以为制造企业解决设备生态碎片化以及跨终端对接问题,提供安全性、流畅度、多屏协同等功能,实…

Mybatis 的操作(续集)

Mybatis 是一款优秀的 持久性 框架,用于简化 JDBC 的开发 持久层 : 指的就是持久化操作的层,通常指数据访问层(dao),是用来操作数据库的 简单来说 Mybatis 是更简单完成程序和数据库交互的框架 Mybatis 的写法有两种 : 1.xml 2.注解 这两者各有利弊,后面进行总结 Mybati…

pixhawk在树莓派上直接烧录固件

环境 树莓派4Bubuntu20.04 pixhawk2.4.8 执行 在ardupilo根目录下敲指令 ./waf configure --board fmuv3 ./waf sub ./waf --targets bin/adusub --upload过程 pixhawk通过usb接入树莓派中,在烧录过程如果出现以下情况则需要拔插usb线 会擦除原有固件&#xf…

【详细版】基于AWS EC2使用Docker安装部署Superset v2.0

文章目录 1. SuperSet介绍2. 实验说明3. 实验配置4. SSH连接云实例5. 系统版本查看6. 主机名映射7. Docker安装[可选] Docker Compose安装8. 安装superset9. 初始化superset容器10. 为superset加入连接Athena需要的依赖11. 为superset准备一个具有权限的IAM用户12. 添加此IAM用…

ESP32-Web-Server编程- 通过滑动条向 Web 提交数据

ESP32-Web-Server编程- 通过滑动条向 Web 提交数据 概述 上一节我们讲述了通过文本框向 ESP32 发送字符串、数字。有时,我们需要向 ESP32 发送连续的值,这种需求可以通过在网页端实现滑动条来实现。 需求及功能解析 本节演示如何在 ESP32 上部署一个…

把int类型转换为字符串形式

要将int类型的变量转换为字符串形式&#xff0c;可以使用多种方法。以下是几种常见的方式&#xff1a; 使用 std::to_string() 函数&#xff1a; int number 123; std::string strNumber std::to_string(number);使用流操作符 <<&#xff1a; #include <sstream&…

Spring @Cacheable缓存注解

一、简介 缓存介绍 缓存&#xff0c;在我们的日常开发中用的非常多&#xff0c;是我们应对各种性能问题支持高并发的一大利器。 Spring 从 3.1 开始就引入了缓存的支持。定义了如下两个接口来统一支持不同的缓存技术。 org.springframework.cache.Cacheorg.springframework.ca…

这个sql有点东西,记录一下

我有一个需求&#xff1a;在订单表里面查询指定时间的订单数据&#xff0c;如果要是没有订单的话&#xff0c;需要展示当天日期和数据&#xff0c;数据为0 先看一下效果&#xff1a; 话不多说&#xff0c;直接上SQL SELECTdate_range.date AS 日期,COUNT( oco.id ) AS 总订单…

Hdoop学习笔记(HDP)-Part.14 安装YARN+MR

十四、安装YARNMR 1.MR中间结果存储权限 使用Yarn提交MapReduce任务的时候&#xff0c;中间结果会保存在HDFS&#xff0c;/user/username/&#xff0c;如果/user目录下用户目录下不存在&#xff0c;则被创建&#xff0c;当MR执行结束之后&#xff0c;中间结果会被删除&#x…

Vue 3.0 响应性 基础

文章目录 前言声明响应式状态创建独立的响应式值作为 refsRef 展开访问响应式对象响应式状态解构使用 readonly 防止更改响应式对象后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;vue.js &#x1f431;‍&#x1f453;博主在前端领域还…

【多线程】-- 08 线程状态观测、线程优先级、守护线程

多线程 5 线程状态 5.5 线程状态观测 Thread.State线程可以处于以下状态之一&#xff1a; NEW&#xff1a;尚未启动的线程处于此状态RUNNABLE&#xff1a;在Java虚拟机中执行的线程处于此状态BLOCKED&#xff1a;被阻塞等待监视器锁定的线程处于此状态WAITING&#xff1a;正…

英语助教求职简历模板(通用10篇)

以下10篇简历内容以英语助教招聘需求为背景制作&#xff0c;大家可以借鉴参考&#xff0c;希望能帮助大家在众多候选人中脱颖而出。 英语助教求职简历下载&#xff08;可在线制作)&#xff1a;百度幻主简历 英语助教简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 …

Jmeter分布式压测

一、jmeter为什么要做分布式压测 jmeter本身的局限性 一台压力机的 Jmeter 支持的线程数受限于 Jmeter 其本身的机制和硬件配置&#xff08;内存、CPU等&#xff09;是有限的由于 Jmeter 是 Java 应用&#xff0c;对 CPU 和内存的消耗较大&#xff0c;在需要模拟大量并发用户…

GPT市场将取代插件商店 openAI已经关闭plugins申请,全部集成到GPTs(Actions)来连接现实世界,可以与物理世界互动了。

Actions使用了plugins的许多核心思想&#xff0c;也增加了新的特性。 ChatGPT的"Actions"与"Plugins"是OpenAI在GPT模型中引入的两种不同的功能扩展机制。这两种机制的目的是增强模型的功能&#xff0c;使其能够处理更多样化的任务和请求。下面是对两者的比…

区间合并算法总结

区间合并使用贪心算法&#xff0c;对于区间问题&#xff0c;通常需要对左端点排序、右端点排序或者左端点和右端点双关键字排序。区间合并算法的算法步骤&#xff1a; 1. 按照区间左端点排序。 2. 扫描过程中&#xff0c;每次维护一个当前的区间。 题目链接&#xff1a; htt…