Vue利用dayjs封装实现时间实时刷新

 更新时间:2024年07月19日 08:54:49   作者:我是亮哥啊  
Day.js库本身专注于简化JavaScript日期和时间的操作,它的API设计直观,且功能强大,可以方便地格式化日期、添加或减去时间间隔、比较日期等,本文主要介绍了Vue利用dayjs封装实现时间实时刷新,需要的朋友可以参考下

1、vue2中使用mixins封装

1.1 封装

// mixins/formatdate.js
import dayjs from 'dayjs'
export default {
  data() {
    return {
      currentTime: {
        timer: null,
        currentDay: this.formatTime().day, // 星期几
        date: this.formatTime().date, // 年月日
        time: this.formatTime().time, // 时分秒
      },
    }
  },
  mounted() {
    this.timer = setInterval(() => {
      this.updateTime()
    }, 1000)
  },
  methods: {
    formatTime(d = 'YYYY.MM.DD', t = 'HH:mm:ss') {
      let days = ['日', '一', '二', '三', '四', '五', '六']
      let date = dayjs(new Date()).format(d)
      let time = dayjs(new Date()).format(t)
      let day = `星期${days[dayjs().day()]}`
      return { date, time, day }
    },
    updateTime() {
      this.currentTime.currentDay = this.formatTime().day
      this.currentTime.date = this.formatTime().date
      this.currentTime.time = this.formatTime().time
    },
  },
  beforeDestroy() {
    clearInterval(this.timer)
  },
}

1.2 在组件中使用

<span>{{ currentTime.date }}</span>
<span>{{ currentTime.currentDay }}</span>
<span>{{ currentTime.time }}</span>
<script>
import formatdate from '@/mixins/formatdate'
export default {
  mixins: [formatdate],
}
</script>

2、vue3中利用组合式函数

2.1 封装

// formatTime.js
import dayjs from 'dayjs'
import { onBeforeUnmount, onMounted, ref } from 'vue'
export function useTime() {
  // 星期几
  const currentDay = ref('')
  // 年月日
  const date = ref('')
  // 时分秒
  const time = ref('')
  // 获取时间
  const updateTime = (d = 'YYYY.MM.DD', t = 'HH:mm:ss') => {
    let days = ['日', '一', '二', '三', '四', '五', '六']
    date.value = dayjs(new Date()).format(d)
    time.value = dayjs(new Date()).format(t)
    currentDay.value = `星期${days[dayjs().day()]}`
  }
  // 定义定时器
  let timer = null
  onMounted(() => {
    timer = setInterval(() => {
      updateTime()
    }, 1000)
  })
  onBeforeUnmount(() => clearInterval(timer))
  return { currentDay, date, time }
}

2.2 在组件中使用

<span>{{ currentDay }}</span>
<span>{{ date }}</span>
<span>{{ time }}</span>
<script setup>
import { useTime } from '@/utils/formatTime'
const { currentDay, date, time } = useTime()
</script>

到此这篇关于Vue利用dayjs封装实现时间实时刷新的文章就介绍到这了,更多相关Vue dayjs时间实时刷新内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何使用crypto-js对文件上传下载进行加密处理

    如何使用crypto-js对文件上传下载进行加密处理

    这篇文章主要介绍了如何使用crypto-js对文件上传下载进行加密处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 详解Vue学习笔记进阶篇之列表过渡及其他

    详解Vue学习笔记进阶篇之列表过渡及其他

    本篇文章主要介绍了详解Vue学习笔记进阶篇之列表过渡及其他,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • vue+j简单的实现轮播效果,滚动公告,衔接

    vue+j简单的实现轮播效果,滚动公告,衔接

    这篇文章主要介绍了vue+j简单的实现轮播效果,滚动公告,衔接,文章围绕主题的相关资料展开详细的内容具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • vue 避免变量赋值后双向绑定的操作

    vue 避免变量赋值后双向绑定的操作

    这篇文章主要介绍了vue 避免变量赋值后双向绑定的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vite build vue3项目配置开启sourcemap方式

    vite build vue3项目配置开启sourcemap方式

    这篇文章主要介绍了vite build vue3项目配置开启sourcemap方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Vue使用html2canvas实现截取图片并保存

    Vue使用html2canvas实现截取图片并保存

    html2canvas是一个JavaScript库,它可以将HTML元素转换为Canvas元素本文将介绍一下Vue如何使用html2canvas实现截取图片并保存功能,需要的可以参考下
    2023-12-12
  • 前端vue2使用国密SM4进行加密、解密具体方法

    前端vue2使用国密SM4进行加密、解密具体方法

    SM4是一种对称加密算法,类似于AES,主要用于数据的批量加密,如文件加密、数据库加密、网络通信数据加密等,这篇文章主要给大家介绍了关于前端vue2使用国密SM4进行加密、解密的相关资料,需要的朋友可以参考下
    2024-07-07
  • 基于Vuejs的搜索匹配功能实现方法

    基于Vuejs的搜索匹配功能实现方法

    下面小编就为大家分享一篇基于Vuejs的搜索匹配功能实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 如何在vue3中使用滑块检验vue-puzzle-verification

    如何在vue3中使用滑块检验vue-puzzle-verification

    这篇文章主要介绍了在vue3中使用滑块检验vue-puzzle-verification的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • vue项目中使用ts(typescript)入门教程

    vue项目中使用ts(typescript)入门教程

    最近项目需要将原vue项目结合ts的使用进行改造,本文从安装到vue组件编写进行了说明,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论