Vue根据时间戳制作倒计时15分钟
废话不多说直接上代码
<script>
export default {
data() {
return {
downTimeShow: true,
timer: null,
downTime: '',
nowTime: '',
orderList:[
{addTime:'2023.03.27 13:55'},
{addTime:'2023.03.27 11:16'},
],
}
},
//在挂载时启动定时器
mounted() {
let that = this;
this.timer = setInterval(() => {
that.nowTime = new Date().getTime()
this.operaDownTime()
}, 1000);
},
//实例销毁之前清除定时器
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer);
}
},
created() { },
methods: {
//处理倒计时
operaDownTime() {
var ndate = new Date()
this.orderList.forEach((item, index) => {
// 对列表每一项的addtime转成时间戳并用当前时间戳减去addtime时间戳,得到时间差。
// 若是时间差大于15分钟,则不显示剩余时间,小于15分钟则显示。
item.downTimeShow = false
// item的年月日
var dd = new Date(item.addTime)
var ddYear = dd.getFullYear()
var ddMonth = dd.getMonth() + 1
var ddDay = dd.getDate()
// 当前年月日
var td = new Date()
var year = td.getFullYear()
var month = td.getMonth() + 1
var day = td.getDate()
// 当年当月当日
if(year - ddYear === 0 && ddMonth - month === 0 && ddDay-day === 0){
item.downTime = this.nowTime - dd.getTime()
var minutes = (item.downTime % (1000 * 60 * 60)) / (1000 * 60)
var secondes = (item.downTime % (1000 * 60)) / (1000)
// 限制15分钟
var limitMinutes = (900000 % (1000 * 60 * 60)) / (1000 * 60)
// 剩余时间
var remainMinutes = limitMinutes - minutes
var remainSecondes = 60 - secondes
// 向下取整 如果分小于0则表示倒计时已结束 关闭展示倒计时
if (Number(Math.floor(remainMinutes)) < 0) {
item.downTimeShow = false
} else {
item.downTimeShow = true
item.downTime = Math.floor(remainMinutes) + ':' + Math.floor(remainSecondes) + ''
}
}
})
}
}
}
</script>
Vue根据时间戳制作倒计时15分钟的更多相关文章
- Vue 页面15分钟无操作时返回首页
这种需求手机端和pc端一般是不存在的,因为都是可以手动操作刷新的. 最近在做一个户外社区大屏的项目,因为大屏是全屏显示,没法手动刷新,不可能在页面专门做一个刷新按钮,也不好看,那这样的需求就显得格外重 ...
- mysql查超过15分钟未付款的订单,更新为失效状态
个人打开自己的订单时,才检查超过15分钟未付款的订单, 暂不使用机器人,更新状态, Difference counter 差分计数器订单超过15分钟.mysql的时间戳差分比较 $sql = TIM ...
- 时间戳显示为多少分钟前,多少天前的JS处理
/* ** 时间戳显示为多少分钟前,多少天前的处理 ** eg. ** console.log(dateDiff(1411111111111)); // 2014年09月19日 ** console. ...
- Vue -- filters 过滤器、倒计时效果
局部过滤器 时间.***号 <div id="wrapper" class="wrapper" style="display: none;&qu ...
- 15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码)
15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码) 前言 设计模式是一个程序员进阶高级的必备技巧,也是评判一个工程师工作经验和能力的试金石.设计模式是程序员多年工作经 ...
- 获取当前时间UTC时间的下一个15分钟时间点
ZonedDateTime zdt = ZonedDateTime.now(ZoneOffset.UTC); int now15Minute = zdt.getMinute() / P15MINUTE ...
- 15分钟学会使用Git和远程代码库
git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...
- Bash脚本15分钟进阶教程
转载: Bash脚本15分钟进阶教程 这里的技术技巧最初是来自谷歌的"Testing on the Toilet" (TOTT).这里是一个修订和扩增版本. 脚本安全 我的所有ba ...
- 15分钟理解HTTPS——通俗篇
| 导语 它很深奥吗?你肯定常常见过它,使用它,甚至离不开它... 它很浅显吗?你可能觉得看透它,理解它,甚至懂它... 让我们用15分钟,不那么学术地将它的深挖到底~ 什么?如何证明我是我?本文要上 ...
- 使用vue全家桶制作博客网站
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...
随机推荐
- WinForm分辨率适应-高DPI自动缩放
https://www.cnblogs.com/alittlecooing/p/WinForm-HighDPI.html 新建app.manifest文件后,去掉注释就可
- Centos7.6操作系统安装
新建虚拟机 默认下一步 稍后安装操作系统 选择对应的操作系统和版本 指定虚拟机名称和存储位置 处理器配置 内存配置:图形化界面至少2G,字符界面至少1G. 网络类型默认为NAT I/O控制器类型默认L ...
- 宕机了,Redis如何避免数据丢失?
Redis的持久化主要有两大机制,即AOF日志和RDB快照 AOF日志 1.2 AOF日志是如何实现的? 说到⽇志,我们⽐较熟悉的是数据库的写前⽇志(Write Ahead Log, WAL)-- ...
- Tarjan强连通分量(scc)
概念解释 节点强连通:\(v_i\)与\(v_j\)(\(v_i ≠ v_j\))强连通是指从\(vi\)到\(vj\)和从\(vj\)到\(vi\)都存在路径,即两节点互相可达 强连通图:在有向图\ ...
- 提交docker镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]
- 系统论——复杂适应系统CAS(三)
美国的圣塔菲研究所一直是复杂性研究的中心.1994年,约翰·霍兰德在圣菲研究所举办的吴拉姆纪念讲座中做了名为"隐秩序"的著名演进,而后,出版了<隐秩序-适应性造就复杂性> ...
- kubernetes(k8s)中部署dashboard可视化面板
Web 界面 (Dashboard) Dashboard 是基于网页的 Kubernetes 用户界面.你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用 ...
- QtDesigner安装
QtDesigner简单介绍 Qtdesigner是Python设计里面一个非常实用的工具,使得人们编写qt界面可以不仅仅是使用纯代码,而可以在可视化的基础上设置,非常方便. QtDesigner安装 ...
- [Linux]常用命令之【nl/sed/awk/wc/xargs/perl】
nl nl : 在linux系统中用来计算文件中行号. nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补 ...
- [Linux]调整swap
在启动Tomcat的过程中,tomcat/catalina.out中报出如下故障: > /opt/govern/wydaas/logs/catalina.out # There is insuf ...