Day.js 常用方法

文章目录

            • 1. 初始化日期 / 时间
            • 2. 格式化日期 / 时间
            • 3. 加 / 减
            • 4. 获取某年某月的第一天或最后一天
            • 5. 获取星期几
            • 6. 获取毫秒数
            • 7. 获取时间差(默认输出的差值单位是毫秒)
            • 8. 获取时、分、秒
            • 9. 将毫秒转为时分秒
            • 10. 判断一个日期是否在另外一个日期之后 isAfter
            • 11. 判断一个日期是否在另外一个日期之前 isBefore
            • 12. 判断两个日期是否相同 isSame
            • 13. 判断一个日期是否在两个日期之间 isBetween

Day.js官方文档

1. 初始化日期 / 时间
dayjs().format('YYYY-MM-DD');		    // 初始化日期
dayjs().format('YYYY-MM-DD HH:mm:ss');  // 初始化日期时间
2. 格式化日期 / 时间
dayjs(value).format('YYYY-MM-DD');			// 初始化日期
dayjs(value).format('YYYY-MM-DD HH:mm:ss'); // 初始化日期时间
3. 加 / 减

dayjs().add / dayjs().subtract 代表在当前时间上去加减;
dayjs(value).add / dayjs(value).subtract 代表在指定时间(value)上去加减;

dayjs().add(7, 'day').format('YYYY-MM-DD');   // 2022-04-27 今天(2022-04-20)加上7天
dayjs().add(1, 'month').format('YYYY-MM-DD');   // 2022-05-20 今天(2022-04-20)加上一月dayjs().subtract(2, 'year').format('YYYY-MM-DD');   // 2020-05-20 今天(2022-04-20)减去2年
dayjs().subtract(2, 'hour').format('YYYY-MM-DD HH:mm:ss');   // 2022-04-20 14:03:39 今天现在(2022-04-20 16:03:39)减去2小时

所有可用单位列表:

在这里插入图片描述

4. 获取某年某月的第一天或最后一天
  • 获取某年某月的第一天:
dayjs().startOf('year').format('YYYY-MM-DD HH:mm:ss')   // 2022-01-01 00:00:00  => 第一天格式化出来的时分秒都是0
dayjs().startOf('month').format('YYYY-MM-DD')   // 2022-04-01
  • 获取某年某月的最后一天:
dayjs().endOf('year').format('YYYY-MM-DD HH:mm:ss')   // 2022-12-31 23:59:59  => 最后时间 格式化出来的时分秒是23:59:59
dayjs().endOf('month').format('YYYY-MM-DD')   // 2022-04-30
5. 获取星期几

dayjs().day() : 返回0(星期日)到6(星期六)的数字

设置时也只能接受 0-6 的数字:

dayjs().day(6).format('YYYY-MM-DD'):获取最近周六的日期 => 2022-04-23
dayjs().day(0).format('YYYY-MM-DD'):获取最近周日的日期 => 2022-04-17
6. 获取毫秒数
dayjs('2019-01-25').valueOf() 或 dayjs().valueOf()
7. 获取时间差(默认输出的差值单位是毫秒)
dayjs('2019-01-25').diff('2018-06-05', 'month');         // 7
dayjs('2019-01-25').diff(dayjs('2018-06-05'), 'month');  // 7

所有可用输出单位列表:
在这里插入图片描述

8. 获取时、分、秒

当前时间:2022-04-20 16:55:55 ;
以下大部分方法都会往前溢出;如毫秒超过999,将持续到秒;秒超过59,将持续到分,这边情况在设置时特别突出!

    console.log('-----获取年', dayjs().year());    // ==>> 2022console.log('-----获取月', dayjs().month());   // 0到11的数字 ==>> 3console.log('-----获取星期', dayjs().day());   // 0(星期日)到6(星期六)的数字 ==>> 3console.log('-----获取天', dayjs().date());    // 1到31的数字 ==>> 20console.log('-----获取小时', dayjs().hour());  // 0到23的数字 ==>> 16console.log('-----获取分钟', dayjs().minute());// 0到59的数字 ==>> 55console.log('-----获取秒', dayjs().second());  // 0到59的数字 ==>> 55console.log('-----获取毫秒', dayjs().millisecond());  // 0到999的数字 ==>> 333
9. 将毫秒转为时分秒
// 下面毫秒数代表:2022-04-20 17:43:20
const timestr = 1650447800731;   // 毫秒值必须是number类型,如果是string,结果可能和你想的不一样
console.log('将毫秒转为年-月-日 时:分:秒', dayjs(timestr).format('YYYY-MM-DD HH:mm:ss'));
console.log('获取年', dayjs(timestr).year()); // 
console.log('获取月', dayjs(timestr).month());
console.log('获取天', dayjs(timestr).date());
console.log('获取时', dayjs(timestr).hour());
console.log('获取分', dayjs(timestr).minute());

注意:这里 year()、month()、date()、hour()、minute()、second()、millisecond() 等方法均可使用

10. 判断一个日期是否在另外一个日期之后 isAfter
// day.js 为 2022-04-20
console.log('isAfter', dayjs().isAfter(dayjs('2011-01-01'))) 			 	// true
console.log('isAfter', dayjs('2022-04-20').isAfter(dayjs('2022-04-21')))	// false
console.log('isAfter', dayjs('2022-04-20').isAfter(dayjs('2022-04-20')))	// 相同也为false
11. 判断一个日期是否在另外一个日期之前 isBefore
// day.js 为 2022-04-20
console.log('isBefore', dayjs().isBefore(dayjs('2011-01-01')))             // false
console.log('isBefore', dayjs('2022-04-20').isBefore(dayjs('2022-04-21'))) // true
console.log('isBefore', dayjs('2022-04-20').isBefore(dayjs('2022-04-20'))) // 日期相同时也为false
12. 判断两个日期是否相同 isSame
// day.js 为 2022-04-20
console.log('isSame', dayjs().isSame(dayjs('2011-01-01')))  			// false
console.log('isSame', dayjs('2022-04-20').isSame(dayjs('2022-04-21')))	// false
console.log('isSame', dayjs('2022-04-20').isSame(dayjs('2022-04-20')))	// true
13. 判断一个日期是否在两个日期之间 isBetween

注意:
此功能依赖IsBetween插件
此处也将演示如何使用 Day.js 的插件

import dayjs from 'dayjs'	// 引入dayjs
import isBetween from 'dayjs/plugin/isBetween'	// 引入相关插件created() {dayjs.extend(isBetween); // 挂载插件// 使用插件console.log('isBetween', dayjs('2010-10-20').isBetween('2010-10-19', dayjs('2010-10-25')) )
}

Day.js 里面有 相同或之前 IsSameOrBefore 和 相同或之后 IsSameOrAfter的方法,可根据实际需求取用,但这两个方法需要依赖相应的插件!

注意:
isAfter、isBefore、isSame、IsBetween 默认都是通过将日期转为milliseconds去比较的,所以这两个方法有第二个参数。即指定比较的粒度

console.log('isBefore', dayjs('2022-04-20').isBefore('2015-01-01', 'year'))

所有可用单位列表:
在这里插入图片描述

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

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

相关文章

如何使用云原生数据湖,助力线上教育行业逐步智能化

简介: 阿里云基于对象存储OSS构建的数据湖解决方案,帮助企业有效消除数据孤岛的现象,让数据的价值真正被利用起来。 行业综述 线下教育行业因疫情受挫,线上教育却逆势增长 随着90年代互联网的引入,在线教育产品也依托…

caas k8s主控节点如何查询_k8s--04 部署harbor作为k8s镜像仓库

k8s实战部署harbor作为k8s镜像仓库1.实验目标部署k8s私有镜像仓库harbor把demo小项目需要的镜像上传到harbor上修改demo项目的资源配置清单,镜像地址修改为harbord的地址2.再node1上安装harbor[rootnode1 ~]# cd /opt/#上传harbor软件包[rootnode1 /opt]# rz -Erz w…

vue3中使用cookie

前端使用cookie 步骤一 编写方法cookie.ts //获取cookie、 const CooieTool {getCookie: (name: string) > {var arr, reg new RegExp("(^| )" name "([^;]*)(;|$)");if (arr document.cookie.match(reg))return (arr[2]);elsereturn null;},//设…

无人机、IoT 都危险?第五代网络威胁有哪些特点

从无序中寻找踪迹,从眼前事探索未来。2021 年正值黄金十年新开端,CSDN 以中立技术社区专业、客观的角度,深度探讨中国前沿 IT 技术演进,推出年度重磅企划栏目——「拟合」,通过对话企业技术高管大咖,跟踪报…

持续定义SaaS模式云数据仓库+Serverless

导读:今天主要和大家交流的是网易在数据湖 Iceberg 的一些思考与实践。从网易在数据仓库建设中遇到的痛点出发,介绍对数据湖 Iceberg 的探索以及实践之路。 主要内容包括: 数据仓库平台建设的痛点数据湖 Iceberg 的核心原理数据湖 Iceberg 社…

循序渐进db2 第3版_「图书推荐」焊接工程师手册第3版

机械工业出版社陈祝年 陈茂爱 著内容介绍《焊接工程师手册》(第3版)是焊接专业的综合性工具书,基本涵盖了焊接专业的技术内容。本版在保留第2版精华和特色的基础上添加了先进的工艺技术内容。全书共9篇58章。第1篇汇集了焊接工程师最常用而又不易记忆的符号、公式和…

阿里云推出业内首个云原生企业级数据湖解决方案:将在今年双11大规模应用

简介: 数据湖高峰论坛在京召开,阿里云宣布推出业内首个云原生企业级数据湖解决方案,提供EB级数据存储、分析能力,可一站式实现湖存储、湖加速、湖管理、湖计算,帮助企业对数据深入挖掘与分析,洞察其中蕴含的…

Serverless对研发效能的变革和创新

对企业而言,Serverless 架构有着巨大的应用潜力。随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在 Serverless 架构下,企业的敏捷性有 10 倍提升的潜力。本次分享我主要分为以…

c3p0 服务启动获取连接超时_微服务架构中的熔断、降级

微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让后续的请求直接返…

重塑APM标杆,博睿数据战略升级助力企业数字化转型

(博睿数据发布仪式) 2021年5月26日,由博睿数据举办的“服务可达 达者为先博睿数据2021年战略升级发布巡展”北京站,在北京金茂威斯汀大饭店圆满举行!本次战略升级发布巡展不仅揭开了“数据链DNA”的神秘面纱&#xff…

持续定义SaaS模式云数据仓库+数据银行

简介: 本文将介绍SaaS模式云数据仓库MaxCompute,如何助力数据银行SaaS模式云战略和一体化数据开放场景介绍。 一、云数据仓库 本章节介绍云数据仓库带来的价值及解决方案。 MaxCompute:SaaS模式企业级云数据仓库的应用场景包括广告场景-用…

2020-10-28

Kubernetes的门户-Ingress 目前Kubernetes(K8s)已经真正地占领了容器编排市场,是默认的云无关计算抽象,越来越多的企业开始将服务构建在K8s集群上。在K8s中,组件通过Service对外暴露服务,常见的包括NodePo…

530并行日:用超算更省心

科技兴,则民族兴;科技强,则国家强。 从“神舟”飞天、“蛟龙”入海、“天眼”遥看宇宙,到“嫦娥”奔月、“天问”探火、“量子”惊叹世界,这些世人瞩目的科技成就背后,是一代又一代的中国科技工作者前赴后继…

Flink SQL 1.11 on Zeppelin 平台化实践

简介: 鉴于有很多企业都无法配备专门的团队来解决 Flink SQL 平台化的问题,那么到底有没有一个开源的、开箱即用的、功能相对完善的组件呢?答案就是本文的主角——Apache Zeppelin。 作者:LittleMagic 大数据领域 SQL 化开发的风…

控件设置相对位置_惊人的Divi转换控件!

Divi的变换控件释放了许多新的设计可能你可以使用一系列新设计选项来执行惊人的设计,而到目前为止,只有在诸如Photoshop之类的图形设计程序中才可以这样操作。Divi引入了一项全新功能,该功能允许在Divi Builder中进行惊人的徒手设计&#xff…

第三代英特尔至强可扩展处理器,英特尔数据中心的“芯法宝”

作者 | 宋 慧 出品 | CSDN云计算 头图 | 付费下载于东方IC 距离英特尔发布第三代至强可扩展处理器Ice Lake的全系列产品,已经过去一个多月了。全新一代的至强处理器除了核数增加、性能提升与架构升级以外,还首次将SGX英特尔软件防护扩展技术&#xff08…

谈谈我对零售云在云原生总结与思考

简介: 云原生是零售云的最重要的技术底座,云原生是什么,会走向哪里,在零售2B交付的场景上该如何应用,怎么能够结合帮助建设零售云系列产品体系,值得我们的思考和探索,也将有效指导我们接下来几年…

oracle查看编码

select * from nls_database_parameters where parameter NLS_CHARACTERSET;

类选择器遍历赋值_利用反射实现配置表数据到类对象数据的转换

在游戏开发中,配置表是不可少的。通常我们将一个类,做成一个配置表,将配置表每列的索引都和类的字段名严格对应起来。先实例化一个类的对象,然后通过反射来遍历类中的字段,通过field.SetValue()给类的对象赋值。但是配…

人工智能如何提升大数据存储与管理效率?

简介: 通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平。而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案。 随着大数据的大量来源以及企业可用数据量的增加,存储容量规划已成为存储管理员的问题…