[Day.js] 工具类Day.js 的基本使用

提升日期处理效率:day.js 实战经验分享 theme: smartblue 本文简介 点赞 + 关注 + 收藏 = 学会了 本文主要介绍我在工作中使用 day.js 较多的方法。 本文并不能代替 day.js 官方文档,日常工作中该查文档的还是要查文档。 本文是写给刚接触 day.js 的工友,让这部分工友能更顺利上手 day.js。 本文不涉及 day.js 插件(王国之泪通关后再写这部分吧)。 day.js 简介 d... 阅读详情

一、Day.js 简介

与Moment.js 一样,Day.js 是一个轻量的处理时间和日期的 JavaScript 库,两者的API 设计保持完全一样,只要你会Moment.js,那么你就会Day.js

  1. 和 Moment.js 相同的 API 和用法
  2. 不可变数据 (Immutable)
  3. 支持链式操作 (Chainable)
  4. 仅 2kb 大小的微型库
  5. 全浏览器兼容

二、使用方式

1、安装
npm install dayjs

然后在项目代码中引入即可:

var dayjs = require('dayjs')
dayjs().format()

或者

import dayjs from 'dayjs' // ES 2015

main.js引入

import dayjs from 'dayjs';
Vue.prototype.$dayjs = dayjs;

API参考:

Dayjs 并没有改变或覆盖 Javascript 原生的 Date.prototype, 而是创造了一个全新的包含 Javascript Date 对象的 Dayjs 的对象。
Dayjs 对象是不可变的, 所有的 API 操作都将返回一个新的 Dayjs 对象。

API可支持链式调用

dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');

三、常见用法

1. 获取当前时间戳
dayjs('2021-05-01 12:00:00').unix()

const endTime = dayjs(
   dayjs(queryDate.endTime).format("YYYY-MM-DD HH:mm:ss")
).unix();
2.格式化时间
let time = 1627747199
const dateFormat = dayjs(time).format('YYYY-MM-DD HH:mm:ss')
console.log(dateFormat) // 2021-07-31 23:59:59
3.指定时间

获取上一个月15号 00:00:00 时间戳

dayjs()
    .subtract(1, 'month')
    .date(15)
    .hour(0)
    .minute(0)
    .second(0)
    .unix()

等同于

dayjs()
    .subtract(1, 'month')
    .date(15)
    .startOf('day')
    .unix()

获取明天早上 10:00:00 时间戳

const today = dayjs().date() // 获取今天几号
const tomorrow = dayjs().date(today + 1).hour(10).minute(0).second(0).unix()

获取当月14号 23:59:59

dayjs()
  .date(14)
  .hour(23)
  .minute(59)
  .second(59)
  .format('YYYY-MM-DD HH: mm :ss')

等同于

dayjs()
  .date(14)
  .endOf('day')
  .format('YYYY-MM-DD HH: mm :ss')

时间戳转换网站
时间戳转换网站

4. 获取当前时间
直接运行 dayjs(),得到包含当前时间和日期的 Dayjs 对象。
直接运行 dayjs(),得到包含当前时间和日期的 Dayjs 对象。	
dayjs()
5. 时间字符串

可以解析传入的一个标准的ISO 8601时间字符串。

dayjs(String)
dayjs('1995-12-25')
6. Date 对象
可以解析传入的一个 Javascript Date 对象。

dayjs(Date)
dayjs(new Date(2018, 8, 18))
7. Unix 时间戳 (毫秒)
可以解析传入的一个 Unix 时间戳 (13 位数字)。

dayjs.unix(Number)
dayjs.unix(1318781876)
8. Unix 时间戳 (秒)
可以解析传入的一个 Unix 时间戳 (10 位数字)。

dayjs.unix(Number)
dayjs.unix(1318781876)
9. 复制
Dayjs 对象是不可变的,如果您想获得一个对象的拷贝,请执行 .clone()。 向 dayjs() 里传入一个 Dayjs 对象也能实现同样的效果。


dayjs(Dayjs)
dayjs().clone()
10. 验证

return Boolean

检测当前 Dayjs 对象是否是一个有效的时间。

dayjs().isValid()

四、 获取

1. 年。获取和改变日期。获取或设置年份
	dayjs().year()
	dayjs().year(2000)
2. 月。获取或设置月份。从 0 开始
dayjs().month()
dayjs().month(0)
3. 日。获取或设置日期。从 1 开始
dayjs().date()
dayjs().date(1)

4. 星期。获取或设置日期。从 0 开始
dayjs().day()
dayjs().day(0)
5. 小时。获取或设置小时。
dayjs().hour()
dayjs().hour(12)
6. 分。获取或设置分钟。
dayjs().minute()
dayjs().minute(59)
7. 秒。获取或设置秒。
dayjs().second()
dayjs().second(1)
8. 毫秒。获取或设置毫秒。
dayjs().millisecond()
dayjs().millisecond(1)
8. 获取。获取从 Dayjs 对象中取到的信息 传入的单位 (unit) 对大小写不敏感。
	dayjs().get(unit : String)
	dayjs().get('month') // 从 0 开始
	dayjs().get('day')
  1. 可用单位
  2. 在这里插入图片描述

五、 设置

1.设置时间。
	dayjs().set(unit : String, value : Int);
	dayjs().set('date', 1);
	dayjs().set('month', 3); // 四月
	dayjs().set('second', 30);

2。操作时间。
dayjs()
  .startOf('month')
  .add(1, 'day')
  .subtract(1, 'year')

3。增加时间。
	dayjs().add(value : Number, unit : String);
	dayjs().add(7, 'day');

4。减少时间。
	dayjs().subtract(value : Number, unit : String);
	dayjs().subtract(7, 'year');
5。开头时间。
	dayjs().startOf(unit : String);
	dayjs().startOf('week'); // 取决于 locale 文件里 `weekStart` 的值

6。结束时间。
    dayjs().endOf(unit : String);
	dayjs().endOf('month');

六、 显示

1。格式化 Dayjs 对象并展示。

格式化
return String
接收一系列的时间日期字符串并替换成相应的值。

	dayjs().format(String)
	dayjs('2019-01-25').format('[YYYY] YYYY-MM-DDTHH:mm:ssZ[Z]') // 'YYYY 2019-01-25T00:00:00-02:00Z'
	dayjs().format('{YYYY} MM-DDTHH:mm:ssZ[Z]') // "{2014} 09-08T08:02:17-05:00Z"

详情如下:
在这里插入图片描述

七、 时间差

1。获取两个 Dayjs 对象的时间差,默认毫秒。

return Number
获取两个 Dayjs 对象的时间差,默认毫秒。

	const date1 = dayjs('2019-01-25')
	const date2 = dayjs('2018-06-05')
	date1.diff(date2) // 20214000000
	date1.diff(date2, 'month') // 7
	date1.diff(date2, 'month', true) // 7.645161290322581
	date1.diff(date2, 'day') // 233

2。Unix 时间戳 (毫秒)。return Number。返回 Unix 时间戳 (毫秒)。
dayjs().valueOf()
3。Unix 时间戳 (秒)。
return Number

返回 Unix 时间戳 ()dayjs().unix()
4。UTC 偏移量 (分)。
返回 UTC 偏移量 ()

dayjs().utcOffset()
5。天数 (月)。
return Number

返回月份的天数。
dayjs().daysInMonth()
6。Date 对象。
return Javascript Date object
返回原生的 Date 对象。

dayjs().toDate()
7。As JSON。
return JSON String
当序列化 Dayjs 对象时,会返回 ISO8601 格式的字符串。
dayjs().toJSON() //"2018-08-08T00:00:00.000Z"
8。ISO 8601 字符串。
return String
返回 ISO8601 格式的字符串。
dayjs().toISOString()
9。字符串。
return String

dayjs().toString()

八、 查询

1。是否之前。
return Boolean
检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之前。

	dayjs().isBefore(Dayjs, unit? : String);
	dayjs().isBefore(dayjs()); // false
	dayjs().isBefore(dayjs(), 'year'); // false
2。是否相等。
return Boolean
检查一个 Dayjs 对象是否和另一个 Dayjs 对象时间相同。
dayjs().isSame(Dayjs, unit? : String);
dayjs().isSame(dayjs()); // true
dayjs().isSame(dayjs(), 'year'); // true
3。是否之后。
return Boolean
检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之后。
dayjs().isAfter(Dayjs, unit? : String);
dayjs().isAfter(dayjs()); // false
dayjs().isAfter(dayjs(), 'year'); // false
4。是否是 Dayjs .isDayjs(compared: any)。
返回一个 boolean 验证传入值是否是一个 Dayjs 对象.
	dayjs.isDayjs(dayjs()) // true
	dayjs.isDayjs(new Date()) // false
5。也可以使用 instanceof。
dayjs() instanceof dayjs // true

九、 目前使用中

官方文档地址
github地址

1.格式化日期
import dayjs from 'dayjs';
dayjs(vehicle.PT).format('YYYY-MM-DD HH:mm:ss')
dayjs(vehicle.R).format('YYYY-MM-DD HH:mm:ss') 
2.获取月份最后一天
let month = dayjs().month() + 1;
month = month < 10 ? "0" + month : month;

const year = dayjs().year();
const dateStr = `${ year }-${ month }-01`;
this.startTime = dayjs(dateStr).format("YYYY-MM-DD 00:00:00");

//当月最后一天
this.endTime = dayjs(`${ year }-${ month }`).endOf('month').format('YYYY-MM-DD 23:59:59');


3.获取年开始与结束日
const dateStr = `${ year }-01-01`;

this.startTime = dayjs(dateStr).format("YYYY-MM-DD 00:00:00");

this.endTime = dayjs(`${ year }-12-31`).format("YYYY-MM-DD 23:59:59");

4.获取时间间隔

在这里插入图片描述

  const intervalDay = dayjs(this.queryDate.endTime).diff(
        this.queryDate.beginTime,
        "day"
  );
  if (intervalDay > 2) {
        return this.$message.warning("日期间隔不能大于3天");
  }
  
5.格式化时间时分秒
 dayjs(begintime).format('HH:mm:ss'),
 dayjs(endtime).format('HH:mm:ss')
dayjs 【代码】dayjs 阅读详情

相关推荐

【笔记软件obsidian】从入门到精通

目录 一、前言 二、下载及安装 三、【选修】ios用户如何通过iCloud进行三平台同步 四、基本Markdown语法 五、【选修】插件的下载及安装方式 六、

patrick的博客 9万+

Day.js 常用方法

前言 Day.js 是代替修改本地Date.prototype,Day.js对Date对象进行了封装,只需要调用Dayjs()即可。 相对moment.js而已,day.js的体积更小,只有2KB左右;moment.min.js 有16.7KB。 对应普通项目来说,对应时间的操作就只有那么几个(格式化、查询、计算),这些基于Day.js完全足够。并且Day.js的文档相对简单、清晰! 该文章对比之前的moment.js的文章 Day.js官方文档   当前文章很多实例是以当前时间来处理的, 当前时间

halo1416的博客 5万+

JS中的Day.js(秒懂如何快速处理日期以及手写Day.js

Day.js 是一个轻量级的 JavaScript 日期库,用于解析、操作和格式化日期和时间。它的设计灵感来自于 Moment.js,但相比于 Moment.jsDay.js 更小巧、性能更好,并且提供了更现代化的 API。

百赢出品,必属精品 4429

日期时间工具(dayjs)的使用

简介 Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js 安装 npm install dayjs --save import dayjs from 'dayjs' // 或者 CommonJS // var dayjs = require('d...

一只倔强的蜗牛的博客 6万+

前端工程化03-贝壳找房项目案例&JavaScript常用的js

这个项目包含,基本的ajax请求调用,内容的渲染,防抖节流的基本使用,ajax请求工具类的封装。

沉睡的猫的博客 1609

Day.js 基本使用

JavaScript提供了多种方式来获取对象的属性。这些方法可以根据不同的需求和情况来选择使用

訾博(ZiBo)的博客 2016

Day.js常用方法集合

使用 npm# 使用 yarn});// 输出"Happy New Year!// 转换为 Unix 时间戳// 转换为 JavaScript Date 对象// 转换为 ISO 8601 格式的字符串Day.js 是一个轻量级,易于使用的 JavaScript 日期库,提供了强大的日期和时间处理功能。它具有简洁的 API,支持链式操作和不可变性。Day.js 支持国际化显示和各种格式的日期和时间的解析和格式化。它还提供了丰富的插件系统,可以轻松扩展功能。

一个努力不被优化的程序员 6858

Day.js 使用文档

Day.js 是一个轻量级 JavaScript 日期处理库,仅 2KB 大小,API 与 Moment.js 兼容。它支持日期解析、格式化、计算等核心功能,所有操作都基于不可变的 Day.js 对象。常用功能包括格式化日期(format())、时间计算(add()/subtract())、比较差值(diff())等。通过插件可扩展本地化、相对时间等能力。相比 Moment.jsDay.js 更轻量且支持 tree-shaking,适合对体积敏感的项目。安装简单,只需导入核心模块即可使用基础功能,按需加载

懒羊羊我小弟的博客 1421

Day.js使用小记

什么是Day.jsDay.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果你曾经用过 Moment.js, 那么您已经知道如何使用 Day.js 从API上来看,Moment.jsDay.js的常用API基本一致,Moment.js里面包含的API较全,但常用API如果基本可以满足我们的开发需要,Day.js如需要其他API,可安装插件来实现。 从体积大小来看,Moment.js的体积大概200多KB,Day.js的体积只有..

codezha的博客 2330

React中使用Day.js指南

Day.js 是一个轻量级的 JavaScript 日期库,专为现代浏览器设计。它提供了与 Moment.js 类似的 API,但体积仅有 2KB(压缩后),相比 Moment.js 的 67KB 有着显著的优势。// 使用

hello! 1203

dayjs 常用方法总结以及项目实战

自定义格式化是 Day.js 的一个强大功能,它允许开发者根据特定的需求来定义日期时间的显示格式。定义格式:可以通过字符串模板定义自定义的日期时间格式。Day.js 将根据模板中的指令解析和显示日期。使用场景:自定义格式化特别适用于需要遵循特定格式标准或展示非标准日期时间格式的场景。自定义日期格式将日期显示为的格式。组合年月日和时间将输出日期和时间,如。包含星期信息将输出包含星期的日期,例如'28.05.2024 星期二'。自定义格式的应用非常灵活,可以根据不同的业务需求来调整日期时间的显示方式。

工作的日常记录和平凡的生活分享 8103

【JavaScript】详解Day.js:轻量级日期处理库的全面指南

Day.js是一个轻量级的JavaScript日期库,兼具现代API和优秀的性能。它的API设计灵感来自于Moment.js,但相比之下,Day.js的体积更小,仅为2KB左右(压缩后和无依赖),非常适合在前端项目中使用

lph159的博客 7337

dayjs使用总结

【代码】dayjs使用总结。

qq_44871531的博客 3899

dayjs 入门及常用方法

dayjs是一个轻量的处理时间和日期的 JavaScript 库 官方githubhttps://github.com/iamkun/dayjs 中文使用文档https://github.com/iamkun/dayjs/blob/master/docs/zh-cn/API-reference.md dayjs好处 ???? 和Moment.js有着相同的API和模式 ???? 不可变、持久...

高先生的猫 1万+

dayjs-入门及常用方法

day.js

IMSI的博客 3934

详细讲一下day.js的基础用法,干货满满

【代码】详细讲一下day.js的基础用法,干货满满。

m0_73574455的博客 3652

Day.js 基础用法全方位详解

Day.js 是一个轻量级的 JavaScript 日期处理库,体积仅 2KB,API 设计与 Moment.js 高度兼容,支持链式调用、不可变数据和插件扩展。它可以通过 NPM/Yarn 或 CDN 引入,支持多种方式创建日期对象,并提供丰富的日期格式化、解析、运算、比较等功能。

修炼魔法中.... 2774

YOLOv11模型改进-模块-引入特征细化模块FRFN 解决小目标、遮挡等问题

FRFN 是一种专门设计的深度学习结构,旨在提高图像处理任务中的特征表示能力。它的核心设计理念是通过逐层细化和优化特征图,从而实现更高的分类和检测精度。1. 特征提取层:通过卷积层提取初始特征,并进行批量归一化以增强稳定性。2. 特征细化模块:在每个模块中,当前层特征图与前一层特征图进行融合,以强化特征表示。3. 跳跃连接:通过跳跃连接保留多尺度信息,帮助缓解深层网络中的信息丢失。4. 非线性激活:使用激活函数(如ReLU)增加模型的非线性能力。5. 输出层。

qq_64693987的博客 3274

C8051F350单片机做的称重系统

C8051F350单片机做的称重系统,很不错的

上一篇: Object.keys()的详解和用法
下一篇: vue-devtools使用
都挺好,刚刚好
博客等级 码龄7年 990粉丝 · 537原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

都挺好,刚刚好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值