最近因为一个项目需要用到商品批量倒计时,当时使用vant封装好的组件CountDown编写

起初不知道“timeData”这个对象只需要传time的时间戳就可以自动生成,走了一大波弯路,现在想想也是醉了

最开始写这个倒计时的时候没有考虑到使用当前服务器时间问题,只获取了本地时间 new Date().getTime(),然后发现这个不行,只要用户修改下手机本地时间,这个倒计时就不行了,有安全隐患,在网上也搜了一些相关知识,但都不尽人意,故想写这一篇文章避免大家再走我之前的弯路!

废话不多少说,上代码

html:

js:

1、skl_arr[i].nowdate_time,skl_arr[i].end_time都是后台提供的字段,格式为"2020-01-02 18:40:48",当然你也可以让后台返回时间戳给你,这样就更方便前端了(省掉new Date(String(XX).replace(/\-/g, '/')).getTime()这一步转换时间戳,其中.replace(/\-/g, '/')为兼容苹果时间显示问题)

2、其中skl_arr[i].nowdate_time是服务器当前时间,skl_arr[i].end_time商品倒计时结束时间,skl_arr[i].curTime是自己定义的一个字段,用于上述html中的:time="item.curTime"使用

3、最后在倒计时结束后调用结束回调函数,用于更新按钮,文字状态,变成已结束状态

css样式就不上传了,最后结果如下

最后补上curTime赋值片段,较比之前修改了一些,但不影响

var skl_arr = res.data.result.data;// console.log(skl_arr)
if (skl_arr.length == 0) {that.loading = false;that.finished = true;
} else {for (let i = 0, len = skl_arr.length; i < len; i++) {//获取进度// if (skl_arr[i].stock == 0) {//     skl_arr[i].percentage = 100.0;// } else {//     skl_arr[i].percentage = ((skl_arr[i].buy_nums / skl_arr[i].total_stock) * 100).toFixed(2);// }var nowTime = new Date(String(skl_arr[i].curr_date).replace(/\-/g, '/')).getTime(); //服务器当前时间var endTime = new Date(String(skl_arr[i].end_time).replace(/\-/g, '/')).getTime(); //结束时间skl_arr[i].curTime = endTime - nowTime; //剩余时间skl_arr[i].states = false;groupArr.push(skl_arr[i]);}// 加载状态结束that.loading = false;that.groupArr = groupArr;
}

vue微信登录:vue 微信登录(使用了vant)_余温无痕的博客-CSDN博客

vue获取微信地址并调用高德地图解析出详细地址:vue 获取微信定位经纬度,并调用高德地图解析出详细地址_余温无痕的博客-CSDN博客

vue+vant商品列表批量倒计时相关推荐

  1. vue 实现商品列表的添加、删除,搜索

    大江东去,浪淘尽,千古风流人物.故垒西边,人道是,三国周郎赤壁.乱石穿空,惊涛拍岸,卷起千堆雪.江山如画,一时多少豪杰.遥想公瑾当年,小乔初嫁了,雄姿英发.羽扇纶巾,谈笑间,樯橹灰飞烟灭.故国神游,多 ...

  2. 小程序商品列表秒杀倒计时

    下面先给大家介绍下vue 设计一个倒计时秒杀的组件 ,具体内容如下所述: 简介: 倒计时秒杀组件在电商网站中层出不穷 不过思路万变不离其踪,我自己根据其他资料设计了一个vue版的 核心思路: 1.时间 ...

  3. 前端学习(1989)vue之电商管理系统电商系统之渲染商品列表数据

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  4. 前端学习(1988)vue之电商管理系统电商系统之获取商品列表

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  5. 前端学习(1987)vue之电商管理系统电商系统之通过路由加载商品列表

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  6. Vue 项目实战五 参数管理 商品列表

    1.1 参数列表(展示动态参数可选项) 动态参数可选项展示及操作,在获取动态参数的方法中进行处理. //将获取到的数据中的attr_vals字符串转换为数组 res.data.forEach(item ...

  7. 基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增

    基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增 页面效果 列表页面 新增页面 详情页面 代码实现 列表+新 ...

  8. iOS【 列表底部操作按钮视图的封装】(例子: 门店商品列表底部操作按钮视图: 发布商品、批量下/上架、同步网店、打印价签)

    文章目录 前言 I. 用法 1.1 创建模型和处理点击事件 II.代码 2.1 ERPBottom_operation_view 2.1.1 ERPBottom_operation_view.h 2. ...

  9. 2021 Vue全家桶开发电商管理系统(Element-UI)08 商品列表功能的实现

    商品列表功能的实现 1 自定义格式化时间的全局过滤器 打开main.js,创建过滤器 Vue.filter('dateFormat', function (originVal) {const dt = ...

最新文章

  1. Linux vi/vim 操作命令大全
  2. 一个创业公司的API网关落地实践--转
  3. r4卡2020整合内核_R4卡使用方法!游戏介绍及常见问题!任天堂掌机通用
  4. Golang undefined: strings.ReplaceAll解决
  5. 推荐算法炼丹笔记:序列化推荐算法Bert4Rec
  6. AWD-LSTM为什么这么棒?
  7. 如何使处于不同局域网的计算机实现远程通信_小区自来水二次加压泵站远程监控系统方案...
  8. 简单易懂实例说明如何设计子网掩码
  9. java 医院病历号怎么生成_java病历管理系统
  10. 基于Springboot+Vue开发建筑工地用料管理系统
  11. Sobel边缘检测 - 梯度算子介绍
  12. python面试之腾讯测试开发工程师
  13. java 货币格式 转换_Java 转换货币形式
  14. 《数据库原理与运用》上机实验之SPJ
  15. Qt的工程文件(.pro) -- 转
  16. 监控系统存储服务器和磁盘阵列,浅谈磁盘阵列如何应用于监控储存领域
  17. DML、DDL、DCL、CRUD指什么?
  18. 阿里云服务器与本地不能复制粘贴
  19. 盘点大数据开发常用的四种编程语言
  20. QQmail安装例子

热门文章

  1. 圣诞节,我们要将改变未来的礼物献给你
  2. IDM6.41最新版下载器Internet Download Manager
  3. HDU 6445 2018CCPC网络赛1008 Search for Answer(费用流 + 构图)
  4. 精美【非主流绿色综合站新云3.1管理内核】无错美化完整版
  5. 【matlab】实验四:数据可视化+matlab绘图
  6. 一文搞懂导航电文(以Rinex3.04为例)
  7. 电文环形解密 (C语言)
  8. 博客RSS地址指的是什么?
  9. Java 手写一个简单计算器(1)
  10. python安装和jupyter的使用 day02(总结)