亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

微信小程序實現訂單倒計時

2020-03-21 15:53:51
字體:
來源:轉載
供稿:網友

本文實例為大家分享了微信小程序實現訂單倒計時的具體代碼,供大家參考,具體內容如下

之前在做一個有拼團功能項目的時候遇到過倒計時的問題,由于當時技術不熟在這方面耽擱了好些時間,所以這里整理出來希望能為后來人提供些許啟發。

1.實現思路

求出發起拼團時間與拼團結束時間的時間差
再將時間差格式化得到我們想要的格式如:

微信小程序,訂單,倒計時

時間每秒遞減使用了 setTimeout(this.setTimeCount,1000);這個函數,讓這個函數每隔一秒執行一次。

效果圖:

微信小程序,訂單,倒計時

2.實現中的難點

若是要實現單個倒計時如60s發送驗證碼倒不是很難,難的是多條倒計時。

不同的訂單下單時間是不一樣的時間差time也就不一樣,所以當初在這卡了很久,后來想通一切才覺得原來如此。

實現方法1:是后臺計算出時間前端直接獲取時間差,當時為了不影響項目進度我們用的就是這個方法,真是苦了那個些后臺的兄弟還得遷就我這個菜鳥。

獲取這個時間差time后我們就可以將它處理后放入數組循環。這樣做的好處是前端不用將time作為一個屬性添加到原數組中。

index.wxml

<view class="item">單條倒計時:{{time}}</view> <view class="item">多條倒計時</view> <view class='no'>暫無任何記錄</view> <view class="content"> <block wx:for="{{listData}}"wx:key="idx" wx:for-item="item" wx:for-index="{{idx}}">  <view class="tip {{item.time<=0?'isShow':''}}">  <view class="dis"> <view class='dis_time left'>剩余時間:{{item.countDown}}</view>  </view>  </view> </block></view>

index.wxss

page{ height:100%; background: #fff; position: relative;}.item{ height:4%; background: #fff; text-align: center;}.content{ border:1px solid rgb(167, 159, 159); background: #F6F8F8; margin-bottom:300rpx; border-bottom: none;}.no{ text-align: center; position: absolute; top:8%; z-index: -11;}.tip{  position: relative; background: #fff; width:100%; height:100rpx; margin-bottom: 5rpx; padding:20rpx 0; border-bottom: 1px solid gainsboro;}.isShow{ display:none;}.dis{ width:100%; font-size: 35rpx; color:#009FE5; box-sizing: border-box;}.dis_time{ width:50%;}

index.js

Page({ /** * 頁面的初始數據 */ data: { pingData: [  {  "id": "1",  "icon": "../../images/image2.jpg",  "number": "20",  "pingTime": "2019-3-28 23:30:00",  "time": "55267",  "showList": "false",  },  {  "id": "2",  "icon": "../../images/image3.jpg",  "number": "4566",  "pingTime": "2019-3-28 12:30:00",  "time": "58934",  "showList": "false",  },  {  "id": "3",  "icon": "../../images/image2.jpg",  "number": "20",  "pingTime": "2019-3-28 08:30:00",  "time": "555234",  "showList": "false",  } ], time:"30" }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { var that = this  that.setData({   listData: that.data.pingData  })  that.setCountDown();   that.setTimeCount(); }, /** * 60s倒計時 */ setTimeCount:function(){ let time=this.data.time time--; if (time <= 0) {  time = 0; } this.setData({  time:time }) setTimeout(this.setTimeCount,1000); }, /**  * 倒計時  */ setCountDown: function () { let time = 1000; let { listData } = this.data; let list = listData.map((v, i) => {  if (v.time <= 0) {  v.time = 0;  }  let formatTime = this.getFormat(v.time);  v.time -= time;  v.countDown = `${formatTime.hh}:${formatTime.mm}:${formatTime.ss}`;  return v; }) this.setData({  listData: list }); setTimeout(this.setCountDown, time); }, /** * 格式化時間 */ getFormat: function (msec) { let ss = parseInt(msec / 1000); let ms = parseInt(msec % 1000); let mm = 0; let hh = 0; if (ss > 60) {  mm = parseInt(ss / 60);  ss = parseInt(ss % 60);  if (mm > 60) {  hh = parseInt(mm / 60);  mm = parseInt(mm % 60);  } } ss = ss > 9 ? ss : `0${ss}`; mm = mm > 9 ? mm : `0${mm}`; hh = hh > 9 ? hh : `0${hh}`; return { ss, mm, hh }; }})

實現方法2:本著不想做菜鳥的心情,我在項目完成后由研究了下當初未完成的方法,即前端計算出時間差并將時間差數組作為原數組的屬性加入循環遍歷。當初一直不知如何在原數組中再添加一個數組作為它的一個屬性。
在之前的基礎上將time時間差作為一個屬性放到原數組中

關鍵代碼如下:

var pinData = that.data.pingData for (var i = 0; i < pinData.length;i++){  console.log("計算出長度為" + pinData.length)  var endtime = that.data.pingData[i].pingTime  console.log("計算出長度為" + endtime)  that.queryTime(endtime)  var time ="pingData["+i+"].time"  that.setData({  [time]:that.queryTime(endtime),  listData:pinData  }) }

新增計算時間差的方法:

queryTime:function(pintime){ var start_date = new Date(); var end_date = new Date(pintime.replace(/-/g, "/")); var days = end_date.getTime() - start_date.getTime(); console.log("獲取到時間差" + days) return days; }

之前困惑我的地方就是如何將時間差這個數組添加到原來的數組中,現在想想思路清晰,曾經的難題也不過爾爾。

index.js方法二修改后的代碼

Page({ /** * 頁面的初始數據 */ data: { pingData: [  {  "id": "1",  "icon": "../../images/image2.jpg",  "number": "20",  "pingTime": "2019-4-15 23:30:00",  "time": "55267",  "showList": "false",  },  {  "id": "2",  "icon": "../../images/image3.jpg",  "number": "4566",  "pingTime": "2019-4-13 12:30:00",  "time": "58934",  "showList": "false",  },  {  "id": "3",  "icon": "../../images/image2.jpg",  "number": "20",  "pingTime": "2019-4-13 08:30:00",  "time": "555234",  "showList": "false",  } ], time:"60" }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { var that = this var pinData = that.data.pingData for (var i = 0; i < pinData.length;i++){  console.log("計算出長度為" + pinData.length)  var endtime = that.data.pingData[i].pingTime  console.log("計算出長度為" + endtime)  that.queryTime(endtime)  var time ="pingData["+i+"].time"  that.setData({  [time]:that.queryTime(endtime),  listData:pinData  }) }  that.setCountDown();   that.setTimeCount(); }, /** * 60s倒計時 */ setTimeCount:function(){ let time=this.data.time time--; if (time <= 0) {  time = 0; } this.setData({  time:time }) setTimeout(this.setTimeCount,1000); }, /**  * 倒計時  */ setCountDown: function () { let time = 1000; let { listData } = this.data; let list = listData.map((v, i) => {  if (v.time <= 0) {  v.time = 0;  }  let formatTime = this.getFormat(v.time);  v.time -= time;  v.countDown = `${formatTime.hh}:${formatTime.mm}:${formatTime.ss}`;  return v; }) this.setData({  listData: list }); setTimeout(this.setCountDown, time); }, /** * 格式化時間 */ getFormat: function (msec) { let ss = parseInt(msec / 1000); let ms = parseInt(msec % 1000); let mm = 0; let hh = 0; if (ss > 60) {  mm = parseInt(ss / 60);  ss = parseInt(ss % 60);  if (mm > 60) {  hh = parseInt(mm / 60);  mm = parseInt(mm % 60);  } } ss = ss > 9 ? ss : `0${ss}`; mm = mm > 9 ? mm : `0${mm}`; hh = hh > 9 ? hh : `0${hh}`; return { ss, mm, hh }; }, queryTime:function(pintime){ var start_date = new Date(); var end_date = new Date(pintime.replace(/-/g, "/")); var days = end_date.getTime() - start_date.getTime(); console.log("獲取到時間差" + days) return days; }})

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人久久18免费网站图片| 成人信息集中地欧美| 久久露脸国产精品| 亚洲国产精彩中文乱码av在线播放| 97在线视频免费看| 国外成人在线播放| 欧美精品一区二区三区国产精品| 久久久亚洲影院| 亚洲欧美www| 亚洲日本中文字幕| 91在线视频免费| 亚洲综合中文字幕68页| 综合激情国产一区| 亚洲精品免费在线视频| 欧美劲爆第一页| 国产亚洲aⅴaaaaaa毛片| 欧美丝袜一区二区| 亚洲国产三级网| 欧美日韩精品在线播放| 欧美高清视频免费观看| 国产欧美精品日韩精品| 美女啪啪无遮挡免费久久网站| 亚洲免费高清视频| 亚洲国产精品悠悠久久琪琪| 久久精品99久久久久久久久| 亚洲男人天堂久| 欧美日韩午夜剧场| 国产在线播放91| 国产在线观看一区二区三区| 国产精品视频播放| 欧美另类在线观看| 国产精品高潮呻吟视频| www.欧美视频| 国产精品一区二区三区久久| 日本亚洲精品在线观看| 久久精品国产电影| 亚洲级视频在线观看免费1级| 亚洲字幕在线观看| 日韩成人xxxx| 九九综合九九综合| 久久网福利资源网站| 日韩欧美精品网址| 国产午夜精品全部视频播放| 亚洲精品在线视频| 亚洲国产精品电影| 日韩av片免费在线观看| 57pao成人国产永久免费| 亚洲欧美三级伦理| 第一福利永久视频精品| 亚洲精品国产拍免费91在线| 成人激情免费在线| 国产又爽又黄的激情精品视频| 亚洲图片欧美午夜| 亚洲精品久久久久久久久| 久久综合亚洲社区| 一本大道久久加勒比香蕉| 中日韩美女免费视频网址在线观看| 成人免费在线网址| 中文字幕国产精品久久| 欧美电影在线播放| 在线观看日韩欧美| 欧美日韩在线观看视频小说| 亚洲国产成人久久综合一区| 国产视频自拍一区| 另类专区欧美制服同性| 久久久久久久999精品视频| 久久久久999| 亚洲国模精品一区| 日韩美女免费视频| 欧美日韩成人网| 国产精品国产自产拍高清av水多| 姬川优奈aav一区二区| 成人在线免费观看视视频| 国产精品第一第二| 国产一区二区三区精品久久久| 精品国偷自产在线| 欧美精品一区二区三区国产精品| 国产91av在线| 成人激情免费在线| 久久久久久国产精品三级玉女聊斋| 91香蕉嫩草神马影院在线观看| 欧美xxxx18性欧美| 精品露脸国产偷人在视频| 国产精品成人v| 亚洲第一区中文99精品| 国产精品视频99| 久久久久免费视频| 日韩在线视频观看正片免费网站| 国产精品免费一区二区三区都可以| 国产精品欧美亚洲777777| 成人做爰www免费看视频网站| 国产精品久久久久久五月尺| 国语自产偷拍精品视频偷| 国产成人一区二区三区小说| 亚洲国产欧美久久| 国产美女高潮久久白浆| 欧美福利视频在线| 国产欧美va欧美va香蕉在| 亚洲女同性videos| 欧美激情喷水视频| 欧美视频免费在线观看| 中文字幕欧美视频在线| 欧洲永久精品大片ww免费漫画| 中文字幕av一区中文字幕天堂| 日韩欧美中文字幕在线播放| 欧美片一区二区三区| www.久久久久久.com| 欧美视频一区二区三区…| 亚洲xxxxx电影| 裸体女人亚洲精品一区| 最近2019年手机中文字幕| 亚洲精品第一国产综合精品| 一本色道久久综合狠狠躁篇的优点| 国产97色在线|日韩| 午夜精品一区二区三区在线视| 久久久久久久影院| 一本一道久久a久久精品逆3p| 在线看片第一页欧美| 久久99热这里只有精品国产| 午夜剧场成人观在线视频免费观看| 国产精品伦子伦免费视频| 亚洲第一精品福利| 国产精品网站入口| 国产精品免费一区二区三区都可以| 日韩乱码在线视频| 日韩av电影在线播放| 欧美电影在线观看高清| 亚洲国产中文字幕久久网| 欧美成人sm免费视频| 在线观看国产成人av片| www国产精品视频| 久久精品国产综合| 亚洲石原莉奈一区二区在线观看| 亚洲精品国产综合区久久久久久久| 成人免费观看49www在线观看| 亚洲a级在线观看| 久久香蕉精品香蕉| 欧美中文在线视频| 国产精品欧美一区二区| 亚洲一区亚洲二区亚洲三区| 欧洲精品在线视频| 亚洲成av人片在线观看香蕉| 久久精品中文字幕电影| 亚洲福利视频网站| 欧美精品激情在线| 久久亚洲春色中文字幕| 欧美中文字幕视频| 日韩精品在线免费观看视频| 欧美猛少妇色xxxxx| 欧美黑人xxxx| 国产精品高清网站| 韩国福利视频一区| 国产一区二区三区丝袜| 日韩精品在线观看一区二区| 国产欧美一区二区白浆黑人| 亚洲精品国产精品国产自| 国产在线视频不卡| 亚洲黄在线观看| 亚洲欧美中文日韩在线| 亚洲成人精品视频| 国产精品黄色av| 亚洲第五色综合网| 亚洲系列中文字幕| 中文字幕欧美在线|