时间处理工具 dayjs使用示例详解

 更新时间:2022年10月27日 08:38:54   作者:昆吾kw  
这篇文章主要为大家介绍了时间处理工具 dayjs使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

特点

在 dayjs 之前,还有一个时间处理工具 moment.js,但是它的体积比较大,即使经过压缩压缩之后依然有 80kb 左右。而前者 dayjs 只有 2kb 大小,且具备一致的 API ,所以现在大都使用 dayjs。

  • 体积极小:核心包只有 2kb 大小,国际化需要加载对应的语言包,可通过插件扩展功能。
  • 简单易用:和 Moment.js 的 API 设计保持一致。
  • 不可变:所有的 API 操作都将返回一个新的 Dayjs 对象,避免 bug 产生,节约调试时间。
  • 国际化:对国际化支持良好,默认为英语环境。

安装和使用

在现代前端应用中,通过 node 包管理工具安装,比如:

pnpm add dayjs

dayjs 的基本架构

dayjs 包暴露了一个全局方法 dayjs,它是一个工厂函数,返回 Dayjs 对象的实例,大致结构如下:

function Dayjs () {
    // ...
}
function dayjs () {
    return new Dayjs()
}   

所以在使用 dayjs 时,每次调用 dayjs 方法,其实都是创建了一个 Dayjs 构造函数的实例。

基本用法

JavaScript 原生的 Date 日期对象没有提供处理格式化日期时间的方法,需要手动封装,可通过引入 dayjs 对日期格式进行处理。

Dayjs 原型对象上有一个 format 方法,用于格式化日期时间。它支持多种解析方法,比如时间戳,Date 对象实例和合法的日期字符串。

import dayjs from 'dayjs'
// 解析 Date 对象实例
dayjs(new Date()).format('YYYY-MM-HH') // 2022-10-24
// 解析 Unix 时间戳 (毫秒)
dayjs(1666617034000).format('YYYY/MM/DD hh:mm:ss') // 2022/10/24 21:10:34
// 解析 Unix 时间戳 (秒)
dayjs.unix(1666617034).format('YYYY-MM-DD') // 2022-10-24
// 解析符合 ISO 8601 格式的日期字符串
dayjs('2022-10-24T20:00:00.000Z').format('YYYY-MM-HH hh:mm:ss') // 2022-10-25 04:00:00

国际化

dayjs 默认语言是英语,只用来展示时间时没有问题。如果要做一些其他的处理,比如计算相对时间,此时需要手动导入中文语言包,来把一些描述性文字转为中文显示。

安装 dayjs 时,会把语言包一并安装下,位于 dayjs/locale 目录下。

import dayjs from 'dayjs'
import zhCn from 'dayjs/locale/zh-cn'
dayjs.locale(zhCn)

使用插件

在一些场景下,需要显示一条数据创建的相对时间,而非绝对时间,比如朋友圈里的分享,论坛里的帖子等等。此时可以导入一个插件来实现这个功能。

import dayjs from 'dayjs'
import relativeTime from 'dayjs/plugin/relativeTime'
dayjs.extend(relativeTime)
// 距离现在的相对时间
console.log(dayjs().toNow()) // 几秒前
// 某一个日期距离现在的相对时间
console.log(dayjs().to('2022-10-20')) // 5 天前

小结

本文简单介绍了 dayjs 的用法,主要用来格式化日期时间,和计算相对时间,以及国际化的处理。更多的介绍和用法可以阅读官方文档

以上就是时间处理工具 dayjs使用示例详解的详细内容,更多关于时间处理工具 dayjs的资料请关注脚本之家其它相关文章!

相关文章

  • javaScript同意等待代码实现心得

    javaScript同意等待代码实现心得

    javaScript功能描述:本程序实现在同意某某协议页面对同意按钮进行十秒钟的禁用,同时在按钮的Value显示倒计时。
    2011-01-01
  • JavaScript中setInterval()和setTimeout()的用法及区别

    JavaScript中setInterval()和setTimeout()的用法及区别

    这篇文章主要给大家介绍了关于JavaScript中setInterval()和setTimeout()用法及区别的相关资料,Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,需要的朋友可以参考下
    2023-11-11
  • JS实现服务五星好评

    JS实现服务五星好评

    这篇文章主要为大家详细介绍了JS实现服务五星好评,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • json的结构与遍历方法实例分析

    json的结构与遍历方法实例分析

    这篇文章主要介绍了json的结构与遍历方法,结合具体实例形式分析了json常见的简单与复杂结构表示方法,以及具体的遍历操作实现技巧,需要的朋友可以参考下
    2017-04-04
  • javascript显示隐藏层比较不错的方法分析

    javascript显示隐藏层比较不错的方法分析

    通常的解决办法是把“答案”当作整个问题容器的子元素,然后点击父元素上的按钮后展开对应的子元素。通过父子元素的对应关系来匹配标题和答案。
    2008-09-09
  • JavaScript实现小球沿正弦曲线运动

    JavaScript实现小球沿正弦曲线运动

    这篇文章主要为大家详细介绍了JavaScript实现小球沿正弦曲线运动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • js验证手机号、密码、短信验证码代码工具类

    js验证手机号、密码、短信验证码代码工具类

    这篇文章主要介绍了js验证手机号、密码、短信验证码代码工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 手把手带你入门微信小程序新框架Kbone的使用

    手把手带你入门微信小程序新框架Kbone的使用

    这篇文章主要介绍了手把手带你入门微信小程序新框架Kbone的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • JavaScript中判断整字类型最简洁的实现方法

    JavaScript中判断整字类型最简洁的实现方法

    这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短、最简洁的实现方法,需要的朋友可以参考下
    2014-11-11
  • JS使用Dijkstra算法求解最短路径

    JS使用Dijkstra算法求解最短路径

    这篇文章主要为大家详细介绍了JS使用Dijkstra算法求解最短路径,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论