Vue中使用Day.js时间转化插件详细教程(附Vue2与Vue3写法)

 更新时间:2025年05月27日 09:53:52   作者:码上前端  
Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间,这篇文章主要介绍了Vue中使用Day.js时间转化插件的相关资料,需要的朋友可以参考下

一、引言

在前端开发中,日期和时间的处理是常见需求。Day.js 是一个轻量级的 JavaScript 日期处理库,与 Moment.js 功能类似,但体积更小、速度更快。在 Vue 项目里,使用 Day.js 能方便地进行日期格式化、计算、比较等操作。不过,由于 Vue 2 和 Vue 3 在语法和架构上存在差异,在这两个版本中使用 Day.js 的方式也有所不同。下面我们就分别介绍在 Vue 2 和 Vue 3 中如何使用 Day.js 插件。

二、在 Vue 2 中使用 Day.js

2.1 安装 Day.js

首先,需要在项目中安装 Day.js。可以使用 npm 或 yarn 进行安装:

npm install dayjs --save
# 或者
yarn add dayjs

2.2 全局引入和使用

在 Vue 2 里,通常会在入口文件(如 main.js)中全局引入 Day.js,这样在所有组件中都能使用。

// main.js
import Vue from 'vue';
import App from './App.vue';
import dayjs from 'dayjs';

// 定义一个全局过滤器用于日期格式化
Vue.filter('formatDate', (value, format = 'YYYY-MM-DD') => {
  return dayjs(value).format(format);
});

new Vue({
  render: h => h(App)
}).$mount('#app');

在上述代码中,我们定义了一个名为 formatDate 的全局过滤器,它接收一个日期值和一个可选的格式字符串作为参数,使用 Day.js 对日期进行格式化。

2.3 在组件中使用过滤器

在组件的模板中,可以直接使用这个全局过滤器。

<template>
  <div>
    <p>格式化后的日期: {{ currentDate | formatDate }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentDate: new Date()
    };
  }
};
</script>

2.4 局部使用 Day.js

除了全局引入,也可以在单个组件中局部引入 Day.js

<template>
  <div>
    <p>格式化后的日期: {{ formattedDate }}</p>
  </div>
</template>

<script>
import dayjs from 'dayjs';

export default {
  data() {
    return {
      currentDate: new Date()
    };
  },
  computed: {
    formattedDate() {
      return dayjs(this.currentDate).format('YYYY-MM-DD');
    }
  }
};
</script>

三、在 Vue 3 中使用 Day.js

3.1 安装 Day.js

同样,先使用 npm 或 yarn 安装 Day.js:

npm install dayjs --save
# 或者
yarn add dayjs

3.2 全局引入和使用

在 Vue 3 中,结合 createApp 创建应用实例,可以在 main.js 中全局引入 Day.js 并定义全局属性或指令。

// main.js
import { createApp } from 'vue';
import App from './App.vue';
import dayjs from 'dayjs';

const app = createApp(App);

// 定义全局属性
app.config.globalProperties.$dayjs = dayjs;

app.mount('#app');

在上述代码中,我们将 Day.js 挂载到全局属性 $dayjs 上,这样在所有组件中都可以通过 this.$dayjs 来使用 Day.js。

3.3 在组件中使用全局属性

<template>
  <div>
    <p>格式化后的日期: {{ formattedDate }}</p>
  </div>
</template>

<script setup>
import { getCurrentInstance } from 'vue';

const { appContext } = getCurrentInstance();
const dayjs = appContext.config.globalProperties.$dayjs;

const currentDate = new Date();
const formattedDate = dayjs(currentDate).format('YYYY-MM-DD');
</script>

3.4 局部使用 Day.js

也可以在单个组件中直接局部引入 Day.js。

<template>
  <div>
    <p>格式化后的日期: {{ formattedDate }}</p>
  </div>
</template>

<script setup>
import dayjs from 'dayjs';

const currentDate = new Date();
const formattedDate = dayjs(currentDate).format('YYYY-MM-DD');
</script>

四、对比总结

4.1 引入方式

  • Vue 2:通过 Vue.filter 定义全局过滤器,或者在组件中直接引入使用。
  • Vue 3:使用 createApp 创建应用实例后,通过 app.config.globalProperties 挂载全局属性,也可在组件中直接引入。

4.2 组件使用方式

  • Vue 2:在选项式 API 中,使用 this 访问全局过滤器或在计算属性、方法中使用 Day.js。
  • Vue 3:在 Composition API 里,使用 getCurrentInstance 获取实例上下文来访问全局属性,或者直接在 setup 函数中局部引入使用。

4.3 灵活性

  • Vue 2:基于选项式 API,结构相对固定,在处理复杂逻辑时可能不够灵活。
  • Vue 3:Composition API 提供了更高的灵活性,代码组织更模块化,更易于复用和维护。

结语

无论是 Vue 2 还是 Vue 3,Day.js 都能很好地满足日期和时间处理的需求。在 Vue 2 中,可以通过全局过滤器或局部引入的方式使用 Day.js;在 Vue 3 中,则可以借助全局属性或局部引入来实现。开发者可根据项目的具体情况和个人喜好,选择合适的使用方式。如果你在使用 Day.js 时遇到任何问题或有不同的使用经验,欢迎在评论区留言分享。希望本文能帮助你在 Vue 项目中更好地使用 Day.js。

到此这篇关于Vue中使用Day.js时间转化插件的文章就介绍到这了,更多相关Vue Day.js时间转化插件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue web-print-pdf实现在线预览打印PDF的技术深度解析

    Vue web-print-pdf实现在线预览打印PDF的技术深度解析

    在现代Web应用开发中,在线预览打印PDF是一个重要的技术需求,本文将深入探讨如何通过Vue技术栈结合web-print-pdf npm包,实现真正的在线预览打印功能,需要的可以了解下
    2025-09-09
  • Antd的table组件表格的序号自增操作

    Antd的table组件表格的序号自增操作

    这篇文章主要介绍了Antd的table组件表格的序号自增操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vuex 使用 v-model 配合 state的方法

    Vuex 使用 v-model 配合 state的方法

    这篇文章主要介绍了Vuex 使用 v-model 配合 state的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 基于uniapp+vue3自定义增强版table表格组件「兼容H5+小程序+App端」

    基于uniapp+vue3自定义增强版table表格组件「兼容H5+小程序+App端」

    uv3-table:一款基于uniapp+vue3跨端自定义手机端增强版表格组件,支持固定表头/列、边框、斑马纹、单选/多选,自定义表头/表体插槽、左右固定列阴影高亮显示,支持编译兼容H5+小程序端+App端,H5+小程序+App端,多端运行一致
    2024-05-05
  • 构建Vue3桌面应用程序的方法

    构建Vue3桌面应用程序的方法

    在项目中会用到 Electron , 一种最流行的框架,可使用Javascript构建跨平台的桌面应用程序。在本文中,我们将研究如何通过 Vite 开发 Vue 3 桌面项目,感兴趣的可以了解一下
    2021-05-05
  • vue集成百度UEditor富文本编辑器使用教程

    vue集成百度UEditor富文本编辑器使用教程

    这篇文章主要为大家详细介绍了vue集成百度UEditor富文本编辑器的使用教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • vue开发中的base和publicPath的区别

    vue开发中的base和publicPath的区别

    本文主要介绍了vue开发中的base和publicPath的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • vue响应式原理与双向数据的深入解析

    vue响应式原理与双向数据的深入解析

    Vue 最独特的特性之一,是其非侵入性的响应式系统。下面这篇文章主要给大家介绍了关于vue响应式原理与双向数据的相关资料,需要的朋友可以参考下
    2021-06-06
  • 详解如何用VUE写一个多用模态框组件模版

    详解如何用VUE写一个多用模态框组件模版

    这篇文章主要介绍了详解如何用VUE写一个多用模态框组件模版,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Vue弹窗的两种实现方式实例详解

    Vue弹窗的两种实现方式实例详解

    这篇文章主要介绍了Vue弹窗的两种实现方式,一种使用.sync修饰符另一种使用v-model,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论