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 ...
随机推荐
- .net core mvc中session的应用
1.首先新建一个空的web项目,在Program.cs中打开和使用session public class Program { public static void Main(string[] arg ...
- Bootstarp5第二弹
四.网格系统 网格系统根据设备屏幕尺寸大小分为6类: col-<!--任意屏幕--> col-sm-<!--平板 - 屏幕宽度等于或大于 576px.--> col-md-&l ...
- 如何让excel不转换科学技术法
使用场景: 业务部门从系统导出数据给开发人员,打开后数字全部变为科学计数法 参考文章:https://www.zhihu.com/question/20096750
- java网络编程--3 TCP
java网络编程--3 TCP 1.6.TCP 客户端 连接服务器 Socket 发送消息 package com.ssl.lesson02; import java.io.IOException; ...
- Java面试——锁
公平锁:是指多个线程按照申请锁的顺序来获取锁,有点先来后到的意思.在并发环境中,每个线程在获取锁时会先查看此锁维护的队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中, ...
- 内核不中断前提下,Gaussdb(DWS)内存报错排查方法
摘要:本文主要讲解如何在内核保证操作不能中断采取的特殊处理,理论上用户执行的sql使用的内存(dynamic_used_memory) 是不会大范围的超过max_dynamic_memory的内存的 ...
- Flask+Gunicorn+Nginx配置多个app
请自行安装好nginx.gunicorn和flask的运行环境,这里不再赘述 Nginx配置 修改nginx的配置 vi /etc/nginx/sites-available/default //de ...
- LeeCode 318周赛复盘
T1: 对数组执行操作 思路:模拟 public int[] applyOperations(int[] nums) { int n = nums.length; for (int i = 0; i ...
- python从shp文件中读取经纬度数据
python从shp文件中读取经纬度数据 没有接触过GIS的人来说shp文件很陌生而且很难打开查看,好在python可以从中提取出自己想要的数据 pyshp库的安装 python的pyshp库可以实现 ...
- 部署:keepalived-1.3.5+MHA部署mysql集群
MHA: MHA工作原理总结为以下几条: 从宕机崩溃的master保存二进制日志事件(binlog events): 识别含有最新更新的slave: 应用差异的中继日志(relay log)到其他sl ...