Vue.js如何实现倒计时?颜小白实测可用!

2023-11-02

Vue.JS如何实现倒计时功能

1.首先一般来说前端小伙伴们会收到后端同学传过来的一个结束时间,大部分需要倒计时得情况都是在详情页,比如商品,活动等一些场景。
2.如果需要实现倒计时功能,首先我们需要知道如何计算剩余时间,首先我们会拿到后端传过来的endTime。一般使用时间戳去计算。时间戳分为10位,秒为单位,13位毫秒为单位。首先获取当前时间用当前时间-endTime。我们就拿到了剩余时间,有两种情况:(1)首先endTime减去当前时间如果小于0说明结束时间已经过去了,返回一个“已截至”(2)如果endTime大于0就可以进行倒计时操作了。

废话不多说了,上代码

		data: function() {
				return {
					endTime:1615601742731//毫秒时间戳
					day:'0',//天
					hour:'00',//时
					min:'00',//分
					second:'00'//秒
				}
			},
			methods:{
				getdetails(){
				//获取详情
					vm.countTime()
				}
			// 倒计时
				countTime() {
				  // 获取当前时间
				  let date = new Date()
				  let now = date.getTime()
				  // 设置截止时间
				  let endDate = new Date(this.endTime*1000) // this.endTime需要倒计时的日期
				  let end = endDate.getTime()
				  // 时间差
				  let countdown_time= end - now
				  // 定义变量 d,h,m,s保存倒计时的时间
				  if (countdown_time>= 0) {
				    // 天
				    this.day = Math.floor(countdown_time/ 1000 / 60 / 60 / 24)
				    // 时
				    let h = Math.floor(countdown_time/ 1000 / 60 / 60 % 24)
				    this.hour = h < 10 ? '0' + h : h
				    // 分
				    let m = Math.floor(countdown_time / 1000 / 60 % 60)
				    this.min = m < 10 ? '0' + m : m
				    // 秒
				    let s = Math.floor(countdown_time/ 1000 % 60)
				    this.second = s < 10 ? '0' + s : s
				  } else {
				    this.day = 0
				    this.hour = '00'
				    this.min = '00'
				    this.second = '00'
				  }
				  // 等于0的时候不调用
				  if (Number(this.hour) === 0 && Number(this.day) === 0 && Number(this.min) === 0 && Number(this.second) === 0) {
				    return
				  } else {
					 this.$forceUpdate()//更新DOM
				  // 递归每秒调用countTime方法,显示动态时间效果,
				    setTimeout(this.countTime, 1000)
				  }
				}, 
			}

代码都是实测可用得。如果帮到你了希望点个赞~ 谢谢,主页中还有很多关于Vue等方法,都是自己用过实测得

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue.js如何实现倒计时?颜小白实测可用! 的相关文章

随机推荐

  • 解决Could not connect to Redis at 39.101.74.81:6379: ConnectinectionException: Failed to create socket

    1 修改redis conf文件 1 注释掉原先的 bind 127 0 0 1 2 将protected mode yes 修改为no 2 查看是否开启6379端口号 firewall cmd list ports 没开启的话开启 fir
  • 从DB Browser for SQLite导出.csv文件

    如何从 db数据库文件中导出某个表的 csv文件 一般的 后台收集的日志保存在数据库中 查找日志时候需要打开 db文件的数据库 使用DB Browser for SQLite这个软件可以打开和查看数据库表以及数据 使用DB Browser
  • Golang笔记:使用ssh包作为客户端与SSH服务器交互

    文章目录 目的 基础说明 使用演示 单次通讯 连续通讯 远程终端 总结 目的 Golang中可以使用 golang org x crypto ssh 包作为SSH客户端或者SSH服务使用 这篇文章将简单记录下作为客户端使用的一些内容 Pac
  • form表单的提交

    基于html 语言的form表单的提交 1 表单属性设置 标签 表示表单标签 定义整体的表单区域 action属性 设置表单数据提交地址 method属性 设置表单提交的方式 一般有 GET 方式和 POST 方式 不区分大小写 2 表单元
  • Ubuntu中Tango Control的Pogo无法加载的解决办法

    文章目录 环境 步骤 卸载java ubuntu 安装指定版本jdk 重新编译测试 参考 在 自定义Tango Control设备服务在Ubuntu中的测试 中发现 pogo经常出现加载不出来的情况 但是偶尔会有一次可以打开 https b
  • Python:回文日期问题

    每日一题 目录 每日一题 文章目录 前言 一 题目描述 二 输入描述 三 输出描述 1 引入库 2 执行结果 datetime模块的用法 flag的用法 replace 方法 参数 总结 前言 本文章重点讲述回文日期问题 在其中介绍用到的函
  • C语言钟表【改进版】

    改进版源代码 include
  • 边缘计算物联网网关在机械加工行业中的效用分享

    随着工业4 0的推进 物联网技术正在逐渐渗透到各个行业领域 机械加工行业作为制造业的基础领域之一 其生产过程的自动化 智能化水平直接影响到产品质量和生产效率 边缘计算物联网网关作为物联网技术的重要组成部分 在机械加工行业中发挥着越来越重要的
  • Webpack4.0 的相关优化配置

    所谓的优化 也就是引入一些插件 使得代码的体积变小 1 删除没有意义的样式 在css文件中有一些没有用到的样式 希望在打包的过程中 删除掉它们 安装两个插件 cnpm install purgecss webpack plugin glob
  • 深度理解取整&取余&取模运算

    在编程的学习当中 我们会经常行的使用这些操作在表达式计算 但是你在使用当中 你真的理解了吗 或者说是你完全学会使用了 在这篇博客当中 或许会出现错误 希望大家理解 目前还在学习当中 发现错误或不足之处请大家斧正 目录 一 取整 二 取余与取
  • 64位win7下安装MongoDB以zip包的形式 图文(超详细)

    首先从mongodb的官网上下载对应版本的zip包 如果你使用Windows 64 bit 2008 R2 或win7需要安装Hotfix补丁 读者可以去网上下载相应的版本 解压后会得到如下的一个目录 然后自己在某个录下下建好一个目录 我这
  • window.open (‘page.html‘)

    window open page html 用于控制弹出新的窗口
  • 2024王道408数据结构 P143 T8

    2024王道408数据结构 P143 T8 思考过程 首先题目的意思非常简单明了 就是让我们找二叉树中度为2的结点 也就是既有左子树又有右子树的结点 那我们只需要在代码里判断如果该结点有左子树就入队 同时如果该结点有右子树就计数器 1 并且
  • vi/vim基本使用命令

    转自 http www lupaworld com uid 296380 action viewspace itemid 118973 vi vim 基本使用方法 本文介绍了vi vim 的基本使用方法 但对于普通用户来说基本上够了 i v
  • QT+VS配置及调试

    QT下载 https download qt io archive qt QT Creator设置 打开 Qt Creator 进入编译器部分 工具 gt 选项 gt 构建和运行 gt 编译器 可以看到vs的内容 之后 进入 工具 gt 选
  • Android平台GB28181接入端如何对接UVC摄像头?

    我们在对接Android平台GB28181接入的时候 有公司提出这样的需求 除了采集执法记录仪摄像头自带的数据外 还想通过执法记录仪采集外接UVC摄像头 实际上 这块对我们来说有点炒冷饭了 不算新的诉求 大牛直播SDK 在2016年对接RT
  • 2023国庆节放假通知

    喜迎国庆 放假通知 公司相关各部门 国庆来临之际 根据国家有关规定 现将2023年国庆放假事项通知如下 1 9月29至10月6日放假调休 共8天 10月7日上班 10月8日上班 2 各部门接通知后 妥善安排好值班工作 并将各部门值班表于20
  • 500套优秀简历模板,送给您!

    点击上方 成猿之路 选择 置顶公众号 第一时间送达实用技术干货 最近收藏保存了一些简历模板 觉得不错 送给即将步入社会或需要简历模板的你 01单面简历 150款 02多页简历 95款 03表格简历 18款 04英文简历 27款 05艺术气质
  • pytorch: 数据增广(Data Augmentation)

    常用的数据增广方法 比例缩放 位置截取 翻转 旋转 亮度 对比度和色调的变化 读取原图 import torchvision transforms as transforms from PIL import Image img Image
  • Vue.js如何实现倒计时?颜小白实测可用!

    Vue JS如何实现倒计时功能 1 首先一般来说前端小伙伴们会收到后端同学传过来的一个结束时间 大部分需要倒计时得情况都是在详情页 比如商品 活动等一些场景 2 如果需要实现倒计时功能 首先我们需要知道如何计算剩余时间 首先我们会拿到后端传