javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > Day.js常用方法集合

Day.js常用方法集合(附各种事件格式的转换)

作者:跟Bug双向奔赴

dayjs是一个轻量的处理时间和日期的JavaScript库,下面这篇文章主要给大家介绍了关于Day.js常用方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

标题有部分重复,请见谅

优点:

缺点:

接下来我们将详细介绍 Day.js 的使用方法,并附上代码示例和各种事件格式的转换。

安装与基本用法

可以通过 npm 或者 yarn 来安装 Day.js:

# 使用 npm
$ npm install dayjs

# 使用 yarn
$ yarn add dayjs

然后,在你的代码中导入 Day.js:

import dayjs from 'dayjs';

或者:

const dayjs = require('dayjs');

使用 dayjs() 函数创建一个 Day.js 实例,然后就可以通过该实例来对日期进行各种操作。

const now = dayjs();  // 创建一个 Day.js 实例,表示当前时间
console.log(now.format('YYYY-MM-DD'));  // 输出当前日期,格式为"YYYY-MM-DD"

Day.js 提供了很多方便的 API 来操作日期,比如加减天数、小时、分钟等等。

console.log(now.add(1, 'day').format('YYYY-MM-DD'));  // 加一天
console.log(now.subtract(1, 'week').format('YYYY-MM-DD'));  // 减一周
console.log(now.startOf('month').format('YYYY-MM-DD'));  // 月初日期
console.log(now.endOf('month').format('YYYY-MM-DD'));  // 月末日期

Day.js 还支持同时对多个日期进行操作,比如计算两个日期之间的天数差:

const start = dayjs('2022-01-01');
const end = dayjs('2022-01-10');
console.log(end.diff(start, 'day'));  // 输出10,表示两个日期之间的天数差

解析日期:

const date = dayjs('2022-01-01');

格式化日期:

const formattedDate = date.format('YYYY-MM-DD');

获取当前日期:

const currentDate = dayjs();

增加日期:

const newDate = date.add(1, 'day');

减少日期:

const newDate = date.subtract(1, 'day');

比较日期:

const isAfter = date1.isAfter(date2);
const isBefore = date1.isBefore(date2);
const isSame = date1.isSame(date2);

获取日期之间的差异:

const diff = date1.diff(date2, 'day');

获取日期的某个部分:

const year = date.year();
const month = date.month();
const day = date.date();
const hour = date.hour();
const minute = date.minute();
const second = date.second();

设置日期的某个部分:

const newDate = date.year(2023).month(1).date(1);

本地化显示日期:

import localizedFormat from 'dayjs/plugin/localizedFormat';
import 'dayjs/locale/zh-cn';

dayjs.extend(localizedFormat);
dayjs.locale('zh-cn');

const formattedDate = date.format('LL');

格式化日期

Day.js 提供了 format() 方法来格式化日期。它使用类似于 Moment.js 的字符串模板来定义日期的输出格式。

以下是一些常用的模板字符串:

console.log(now.format('YYYY-MM-DD'));  // 输出当前日期,格式为"YYYY-MM-DD"
console.log(now.format('YYYY-MM-DD HH:mm:ss'));  // 输出当前日期和时间,格式为"YYYY-MM-DD HH:mm:ss"
console.log(now.format('YYYY年M月D日 dddd'));  // 输出当前日期,格式为"YYYY年M月D日 dddd"
// 格式化为相对时间(如:几秒前、几分钟前)
dayjs.duration(60, 'seconds').humanize(); // "a minute"

// 格式化为时:分:秒
dayjs.duration(3661, 'seconds').format('H:mm:ss'); // "1:01:01"

// 格式化为天
dayjs.duration(2, 'days').asDays(); // 2

Day.js 还支持自定义格式化函数,你可以传入一个回调函数来定义自己的日期格式。

const customFormat = dayjs('2022-01-01').format(function () {
  return 'Happy New Year!';
});
console.log(customFormat);  // 输出"Happy New Year!"
// 转换为 Unix 时间戳
dayjs().unix();

// 转换为 JavaScript Date 对象
dayjs().toDate();

// 转换为 ISO 8601 格式的字符串
dayjs().toISOString();

日期解析

Day.js 支持解析各种常见的日期格式,包括 ISO 8601 格式和各种本地格式。

const date = dayjs('2022-01-01');
console.log(date.format('YYYY-MM-DD'));  // 输出"2022-01-01"
// 转换为 Unix 时间戳
dayjs().unix();

// 转换为 JavaScript Date 对象
dayjs().toDate();

// 转换为 ISO 8601 格式的字符串
dayjs().toISOString();

Day.js 还支持解析 Unix 时间戳。

const unixTimestamp = 1640995200;  // Unix 时间戳
const date = dayjs.unix(unixTimestamp);
console.log(date.format('YYYY-MM-DD'));  // 输出"2022-01-01"

国际化支持

Day.js 内置了 66 种语言的国际化支持,你可以方便地在你的应用中切换不同的语言。下面是一些常用的国际化示例:

import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn'; // 导入中文语言包

// 设置语言为中文
dayjs.locale('zh-cn');

// 格式化日期
dayjs().format('dddd'); // "星期六"

日期比较

Day.js 提供了一些方法来比较日期的大小。

const date1 = dayjs('2022-01-01');
const date2 = dayjs('2022-01-02');
console.log(date1.isBefore(date2));  // 输出 true,表示 date1 在 date2 之前
console.log(date1.isAfter(date2));  // 输出 false,表示 date1 在 date2 之后
console.log(date1.isSame(date2, 'day'));  // 输出 false,表示 date1 和 date2 不是同一天

日期格式化

Day.js 提供了一些方法来格式化日期。你可以将日期格式化为本地格式、UTC 格式、ISO 8601 格式等等。

将日期格式化为本地格式:

const date = dayjs('2022-01-01');
console.log(date.format('LL'));  // 输出 January 1, 2022

将日期格式化为 UTC 格式:

const date = dayjs('2022-01-01');
console.log(date.utc().format('YYYY-MM-DD HH:mm:ss'));  // 输出 2022-01-01 00:00:00

将日期格式化为 ISO 8601 格式:

const date = dayjs('2022-01-01');
console.log(date.toISOString());  // 输出 2022-01-01T00:00:00.000Z

时间格式的转换

Day.js 提供了一些方法来转换不同的事件格式,比如将日期转换为 Unix 时间戳、将日期转换为 JavaScript Date 对象等等。

将日期转换为 Unix 时间戳:

const date = dayjs('2022-01-01');
console.log(date.unix());  // 输出 1640995200

将日期转换为 JavaScript Date 对象:

const date = dayjs('2022-01-01');
console.log(date.toDate());  // 输出 Sat Jan 01 2022 00:00:00 GMT+0800 (China Standard Time)

将日期转换为 Moment.js 对象:

const date = dayjs('2022-01-01');
console.log(date.toDate());  // 输出 Moment<2022-01-01T00:00:00+08:00>

事件操作

Day.js 提供了一些方法来操作日期,比如加减天数、小时、分钟等等。

加减天数:

const date = dayjs('2022-01-01');
console.log(date.add(1, 'day').format('YYYY-MM-DD'));  // 输出 2022-01-02
console.log(date.subtract(1, 'day').format('YYYY-MM-DD'));  // 输出 2021-12-31

比较两个日期的差异:

const date1 = dayjs('2022-01-01');
const date2 = dayjs('2022-01-10');
console.log(date)

总结:

Day.js 是一个轻量级,易于使用的 JavaScript 日期库,提供了强大的日期和时间处理功能。它具有简洁的 API,支持链式操作和不可变性。Day.js 支持国际化显示和各种格式的日期和时间的解析和格式化。它还提供了丰富的插件系统,可以轻松扩展功能。无论是在 Web 还是 Node.js 环境下,Day.js 都是一个不错的选择。

到此这篇关于Day.js常用方法集合的文章就介绍到这了,更多相关Day.js常用方法集合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文