前端JS必用工具【js-tool-big-box】,日期时间相关工具二

news2024/12/25 10:34:34

上一节我们说到了工具中关于日期的详细转换,还有获取年月日时分秒的详细转换方法使用,同时可以灵活添加自己需要的单位,很便捷。这一节我们继续学习几个相关的方法

目录

1 安装和引入

2 某个时间距离现在的显示 

3 获取某一年是是平年还是闰年 

4 某个月有多少天 

5 属相 

5 获取某一年的节假日 


1 安装和引入

这个工具是一个npm包,所以需要安装,需要在业务组件中引入,安装命令如下:

npm i js-tool-big-box

业务代码中引入的代码如下:

import { timeBox } from 'js-tool-big-box';

2 某个时间距离现在的显示 

js-tool-big-box这个工具对外暴露了timeBox这个对象,比如我们要看溥仪登基距离现在的详细时间,或者是未来人类登陆火星的时间,这代表这以前和以后,代码演示如下:

const unitObj = {
      beforeUnit: 'before',
      afterUnit: 'after',
      yearUnit: 'year',
      monthUnit: 'month',
      dateUnit: ' days ',
      hourUnit: 'hour',
      minutesUnit: 'min',
      secondUnit: 'sec'
    }
    const showData = timeBox.getDistanceNow('1908-12-02 06:00:00', unitObj); // 溥仪登基啦
    console.log('溥仪登基详细时间===', showData);
    const showData1 = timeBox.getDistanceNow('2030-04-19 20:15:59');  // 移民火星啦
    console.log('人类移民火星详细时间===', showData1);

使用方式如下:

方法名返回值入参
getDistanceNow

返回一个对象,包含:

year,这是一个粗算值,不够精细,意思是目标时间到现在经过了多少年;

month,这是一个粗算值,不够精细,意思是目标时间到现在经过了多少月;

date,这是一个粗算值,不够精细,意思是目标时间到现在经过了多少天;

hour,这是一个粗算值,不够精细,意思是目标时间到现在经过了多少小时;

minutes,这是一个粗算值,不够精细,意思是目标时间到现在经过了多少分钟;

seconds,意思是目标时间到现在经过了多少秒钟;

fullDateTime,这是一个精算值,表示目标时间距离现在更加详细的过去了多少年零多少个月零多少天零多少小时零多少分钟零多少秒

第一个参数 time 必传,表示目标时间,可以是以前,可以是以后;

第二个参数 unitObj 非必传,默认展示单位如下:

-------------------------------------

            beforeUnit: '以前',

            afterUnit: '之后',

            yearUnit: '年',

            monthUnit: '月',

            dateUnit: '天',

            hourUnit: '小时',

            minutesUnit: '分钟',

            secondUnit: '秒钟'

-----------------------------------------

你也可以在第二个参数中传入相同的属性值,将默认的显示单位覆盖掉,就像上面的代码示例那样

3 获取某一年是是平年还是闰年 

我们常记得计算闰年的秘籍,但几乎每次代码中都要写一个公共方法,而这在js-tool-big-box中已经做为了一个普通方法

const leapYear = timeBox.getLeapYear('2024-12');
    console.log('=-=2024年是', leapYear ? '闰年': '平年');
    const leapYear1 = timeBox.getLeapYear('2019');
    console.log('=-=2019年是', leapYear1 ? '闰年': '平年');
    const leapYear2 = timeBox.getLeapYear(null);
    console.log('=-=今年是', leapYear2 ? '闰年': '平年');

 执行效果如下:

使用方法如下: 

方法名返回值入参
getLeapYear

返回true或者false

true表示是闰年,false表示是平年

入参非必填,不填表示是今年,可以传入一个时间格式

4 某个月有多少天 

一三五七八十腊,三十一天永不差,然后闰年2月是29天,平年2月是28天,其余都是30天。演示代码如下:

const days = timeBox.getDaysInMonth('2023', 11);
      console.log('2023年12月的天数===', days);
      const days1 = timeBox.getDaysInMonth(null, 1);
      console.log('今年2月的天数===', days1);

使用方法如下: 

方法名返回值入参

getDaysInMonth

返回对应月的天数,例如30 或者 28 或 29  或者 31

第一个 time 参数必填,可以传入时间格式,也可以传入null,传入null表示今年;

第二个参数 必填,因为月份是从0开始的,所以想查2月多少天,第二个参数就传入 1 ,想查12月有多少天,就传入 11

5 属相 

这里,你还可以用工具方法看某一年出生的人的属相,演示代码如下:

const bornAnimal = timeBox.getAnimalOfBorn('2025');
      console.log('2025年出生的人属相是:==-==', bornAnimal);
      const bornAnima2 = timeBox.getAnimalOfBorn('1990-10-25');
      console.log('1990年出生的人属相是:==-==', bornAnima2);

 使用方法如下: 

方法名返回值入参
getAnimalOfBorn返回对应年份的属相英文显示,如 

rat或 ox 或 tiger 或 hare 或 dragon 

或 snake 或 house 或 sheep 或 

monkey 或 rooster 或 dog 或 boar

入参非必填,可传入时间格式,如果不填,表示今年

5 获取某一年的节假日 

节假日当然只有快要到那一年的时候才会知道啦,所以我现在从2014年开始维护,所以之前的节假日是获取不到哒,现在只能获取到2024年的,等再过几年,大家就可以通过这个js-tool-big-box工具知道,历史几年都是哪天是假期啦,是不是很棒,代码如下:

const holiday2024 = timeBox.getHoliday('2024');
      console.log('----', holiday2024);

 使用方法如下: 

方法名返回值入参
getHoliday返回值是一个对象组成的数组,每个元素有name值表示假日名称,days表示都有哪几天放假了,用竖线隔开参数必填,时间格式,现在只支持查2024年的

 

 

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

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

相关文章

dataguard环境破坏后采用rman备份集重新部署

dataguard环境破坏后采用rman备份集重新部署 1. 环境 主库: 192.168.1.118 备库: 192.168.1.85 OS: Centos7 DB: 11.2.0.4 前提条件:dataguard之前已经搭建好,从库的spfile和密码文件不需要创建,主库的数据文件目录在从库必须存在,这里的场景是主库…

请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法和详细的解析。 题干 请编写一个函…

TVbox三端助手MAC+Windows+手机版带接口

Vbox这个目前大热的电视播放器,由于是空壳,于是接口成为非常核心的一环,很多网友制作的接口会进行加密,以防被人复制使用。 最近发现有人对此做了个专门解密的工具,解不解密的不重要的,分享迷倒是觉得这工…

树莓集团与企业协同育人,打造成都数字产业人才培养高地

树莓集团,作为成都数字产业的重要力量,深知企业协同育人的重要性。我们坚信,通过校企合作的模式,可以从供给侧结构性改革的角度出发,开展精准、高效的人才培养工作。我们既是企业,也是产业的代表&#xff0…

VUE识别图片文字OCR(tesseract.js)

效果:1&#xff1a; 效果图2&#xff1a; 一、安装tesseract.js npm i tesseract.js 二、静态页面实现 <template><div><div style"marginTop:100px"><input change"handleChage" type"file" id"image-input"…

uniapp使用腾讯地图实现商家定位

uniapp使用腾讯地图实现商家定位 一丶申请腾讯位置服务开发者密钥二丶下载微信小程序JavaScriptSDK三丶安全域名设置四、代码编写五、实现效果 一丶申请腾讯位置服务开发者密钥 官网教程&#xff1a;微信小程序JavaScript SDK | 腾讯位置服务 点击申请密钥 创建应用&#xf…

Hive 中常用的函数以及数据类型

数据类型 1.基本数据类型: 数据类型大小范围示例TINYINT1byte-128 ~ 127100YSMALLINT2byte-32768 ~ 32767100SINT4byte-2^32~ 2^32-1100BIGINT8byte-2^64~ 2^64-1100LFLOAT4byte单精度浮点数5.21DOUBLE8byte双精度浮点数5.21DECIMAL-高精度浮点数DECIMAL(9,8)BOOLEAN-布尔型tr…

Windows系统下安装paddle

开始使用_飞桨-源于产业实践的开源深度学习平台 (paddlepaddle.org.cn) 命令行下&#xff1a; python -m pip install --upgrade pip --user python -m pip install paddlepaddle2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple 报异常 ERROR: Could not install packa…

力扣HOT100 - 24. 两两交换链表中的节点

解题思路&#xff1a; 递归 class Solution {public ListNode swapPairs(ListNode head) {if (head null || head.next null) {return head;}ListNode newHead head.next;head.next swapPairs(newHead.next);newHead.next head;return newHead;} }

nvm版本控制nvm list available报错

# 配置node镜像&#xff1a; node_mirror: https://npmmirror.com/mirrors/node/ # 配置npm镜像&#xff1a; npm_mirror: https://npmmirror.com/mirrors/npm/ 2024.4.22换域名了&#xff0c;改成这个才能用别的不行

护眼灯真的可以保护眼睛吗?揭秘护眼台灯五大骗局!

护眼台灯作为书房中必不可少的工具之一&#xff0c;基本家家户户都有&#xff0c;但是&#xff0c;随着需求的增加&#xff0c;越来越多不专业的台灯品牌进入市场&#xff0c;这种品牌下的产品不仅质量差&#xff0c;而且使用久了还会出现近视加深、散光等风险&#xff0c;导致…

Linux-缓冲区(简单理解)

1. 缓冲区是什么 缓冲区就是一段内存空间。 2. 为什么要有缓冲区 IO写入有两种&#xff1a; 写透模式&#xff08;WT&#xff09; 成本高&#xff0c;效率低写回模式&#xff08;WB&#xff09; 成本低&#xff0c;效率高 写透模式&#xff1a;每次的文件写入都要立即刷新…

绿联搭建rustdesk服务器

绿联搭建rustdesk服务器&#xff0c;不再使用向日葵 注意&#xff1a;本服务器需要有动态公网IP以及自己的域名&#xff0c;ipv6未测试。 1. 拉取镜像 rustdesk/rustdesk-server-s6:latest 注意是这个-s6的镜像。 2. 部署镜像 2.1 内存配置 本服务器比较省内存&#xff0…

基于Springboot+Vue的Java项目-在线文档管理系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

Unity 对APK签名

关键代码 PS D:\UnityProject\YueJie> jarsigner -verbose -keystore D:\UnityProject\YueJie\user.keystore -signedjar D:\UnityProject\YueJie\meizuemptyapk-release-signed.apk D:\UnityProject\YueJie\MeizuEmpty-release-unsigned.apk 1 示例 # jarsigner的命令格…

免费升级网站http改为https

目录 首先带大家一起先了解一下http的定义、历史、优势以及缺陷。 简述HTTPS的原理和加密逻辑&#xff1a; 免费且不花钱就能实现网站的https访问方式&#xff1a; 很多人可能都发现了&#xff0c;在浏览网页时&#xff0c;最常见的是http访问&#xff0c;但是也有一部分网站…

YashanDB连获多项权威认证

近期&#xff0c;YashanDB产品能力再获认可&#xff0c;顺利通过多项权威测试认证&#xff0c;包括通过《数据库政府采购需求标准(2023年版)》测评&#xff1b;通过国密检测机构测试&#xff0c;产品支持GB/T38636-2020《信息安全技术传输层密码协议(TLCP)》国标协议&#xff1…

Centos7.9安装rabbitmq

1. 概述 AMQP&#xff0c;即 Advanced Message Queuing Protocol&#xff08;高级消息队列协议&#xff09;&#xff0c;是一个网络协议&#xff0c;是应用层协议的一个开放标准&#xff0c;为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息&#xff0c;并不…

Jackson知识点记录

文章目录 一.Jackson模块说明 二.ObjectMapper基本功能使用ObjectMapper的一些核心方法&#xff1a;示例代码1. 序列化示例2. 反序列化示例3. JsonNode 处理示例 高级配置 三.各种Node1. ObjectNode2. ArrayNode3. ValueNode4. MissingNode示例 一.Jackson Jackson 库主要分为…

安泰电子 :高压功率放大器设计方案有哪些

高压功率放大器是现代通信和电子设备中不可或缺的关键组件。它能够将低功率信号放大到足够的功率水平&#xff0c;以便在各种应用中实现远距离传输和覆盖范围。下面西安安泰电子将介绍高压功率放大器的设计方案&#xff0c;包括电路拓扑、元件选择、功率损耗和失真控制等方面的…