day.js轻量级日期处理工具

前言

day.js是对Date对象进行封装的一个日期处理工具,和moment.js相比,day.js的体积较小,2KB左右;moment.js 有16KB左右。在项目中,对于日期时间的简单处理,使用day.js已经足够。

安装

npm  install  dayjs
或
cnpm install  dayjs
或
yarn add  dayjs
或
pnpm  add  dayjs

引入

const dayjs = require('dayjs');
或
import  dayjs  from  'dayjs';
或
<scriptsrc="https://unpkg.com/[email protected]/dayjs.min.js"></script>

使用

格式化日期/时间

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

计算日期/时间

num: 数字

type: 类型,可为 "week"、"day"、"month"、"year"、"hour"、"minute"、"second"、"millisecond"

dayjs().add(num, type).format('YYYY-MM-DD');

dayjs().subtract(num, type).format('YYYY-MM-DD');

dayjs().add(7, 'day').format('YYYY-MM-DD'); // 当前日期 -> 2023-03-15 加上7天
dayjs().add(1, 'month').format('YYYY-MM-DD'); // 当前日期 -> 2023-04-08 加上一个月

dayjs().subtract(2, 'year').format('YYYY-MM-DD'); // 当前日期 -> 2021-03-08 减去2年
dayjs().subtract(2, 'hour').format('YYYY-MM-DD HH:mm:ss'); // 当前日期时间 -> 2023-03-08 19:29:25 减去2小时

获取某年某月的第一天或最后一天

// 某年某月的第一天
dayjs().startOf('year').format('YYYY-MM-DD HH:mm:ss'); // 2023-03-01 00:00:00
dayjs().startOf('month').format('YYYY-MM-DD'); // 2023-03-01

// 某年某月的最后一天
dayjs().endOf('year').format('YYYY-MM-DD HH:mm:ss'); // 2023-03-31 23:59:59
dayjs().endOf('month').format('YYYY-MM-DD'); // 2023-03-31

常用时间获取操作

方法

单位

单位描述

描述

dayjs().year()

获取年份

dayjs().month()

返回0-11数字

获取月份

dayjs().date()

返回1-31数字

获取当月某天

dayjs().hour()

小时

返回0-23

获取当前小时

dayjs().minute()

分钟

返回0-59数字

获取当前分钟

dayjs().second()

返回0-59数字

获取当前秒

dayjs().millisecond()

毫秒

返回0-999数字

或群当前毫秒

dayjs().day(num)

num设置0-6(星期天-星期六)

获取星期几

dayjs('2022-03-08').diff('2023-03-08', 'month')

前者与后者的时间差

获取时间差

时间戳/指定日期转换年月日时分秒

dayjs(timestamp).year();
dayjs("2022-09-09").year();

日期的相同与否、前后判断,返回布尔值

dayjs().isSame(dayjs('2022-03-08')); // 是否相同 true/false
dayjs().isBefore(dayjs('2022-03-08')); // 当前日期是否在2022-03-08之前
dayjs().isAfter(dayjs('2022-03-08')); // 当前日期是否在2022-03-08之后

判断是否为时间日期

dayjs('2023-03-08').isValid(); // 传入的值能否被解析成一个时间日期

导入本地化语言和插件

import * as dayjs from 'dayjs';
import * as isLeapYear from 'dayjs/plugin/isLeapYear'; // 导入插件
import'dayjs/locale/zh-cn'; // 导入本地化语言
// 扩展插件
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
import isSameOrAfter from 'dayjs/plugin/isSameOrAfter';
import isBetween from 'dayjs/plugin/isBetween';
dayjs.extend(isSameOrBefore); // 相同或之前
dayjs.extend(isSameOrAfter); // 相同或之后
dayjs.extend(isBetween); // 是否在之间
dayjs('2022-03-08').isBetween('2020-01-01', dayjs('2023-03-08'));
dayjs().isSameOrBefore(dayjs('2023-03-08'));

dayjs.extend(isLeapYear); // 使用插件
dayjs.locale('zh-cn'); // 使用本地化语言

注意

element-plus 组件库默认支持 dayjs 进行日期时间处理。

import { dayjs } from 'element-plus';

isAfter、isBefore、isSame、IsBetween 默认都是通过将日期转为milliseconds去比较的。

猜你喜欢

转载自blog.csdn.net/my__flower/article/details/129411122