瀏覽代碼

倒计时

bobo 3 年之前
父節點
當前提交
cacff9de86
共有 2 個文件被更改,包括 119 次插入1 次删除
  1. 118 0
      pages/luckDraw/common.js
  2. 1 1
      pages/luckDraw/detail.wxml

+ 118 - 0
pages/luckDraw/common.js

@@ -0,0 +1,118 @@
+export default {
+    isEmpty(v) {
+        if (typeof v == "undefined" || v == null) {
+            return true
+        }
+        if (v == 0 || v == "") {
+            return true
+        }
+        return /^\s+$/g.test(v)
+    },
+
+    toTimeStamp(v, ymd) {
+        if (this.isEmpty(v)) {
+            return null
+        }
+        if (ymd) {
+            v = ymd + " " + v
+        }
+        return new Date(v).getTime() / 1000
+    },
+
+    setActivityCountdownTime(now, activity) {
+        let beginTime = activity.beginTime  // 活动开始时间
+        let endTime = activity.endTime  // 活动结束时间
+        let dayBeginTime = activity.dayBeginTime // 每天开始时间
+        let dayEndTime = activity.dayEndTime // 每天结束时间
+        let nowY = now.getFullYear()
+        let nowM = now.getMonth() + 1
+        let nowD = now.getDate()
+        const Ymd = nowY + "-" + nowM + "-" + nowD;
+        dayBeginTime = this.toTimeStamp(dayBeginTime, Ymd)
+        dayEndTime = this.toTimeStamp(dayEndTime, Ymd)
+        beginTime = this.toTimeStamp(beginTime)
+        endTime = this.toTimeStamp(endTime)
+        const nowTime = now.getTime() / 1000
+        let diffSec = 0;
+        if (activity.timeType == 2) {
+            if (beginTime == null || endTime == null) {
+                return
+            }
+            // 固定时间段内活动
+            beginTime = this.fixBeginTime(beginTime, activity.dayBeginTime)
+            endTime = this.fixEndTime(endTime, activity.dayEndTime)
+            if (nowTime < beginTime) {
+                diffSec = beginTime - nowTime
+                activity.status = 4
+                activity.countDownTime = this.formatTimeBySec(diffSec)
+                activity.statusText = "即将开始"
+                return
+            }
+            if (nowTime > endTime) {
+                activity.status = 3
+                activity.statusText = "已结束"
+                return
+            }
+        }
+        // 长期时间,只要计算,距离当天时间即可
+        if (dayBeginTime == null || dayEndTime == null) {
+            return
+        }
+        if (nowTime < dayBeginTime) {
+            diffSec = dayBeginTime - nowTime
+            activity.status = 4
+            activity.countDownTime = this.formatTimeBySec(diffSec)
+            activity.statusText = "即将开始"
+            return
+        } 
+        if (nowTime > dayEndTime) {
+            diffSec = dayBeginTime + 86400 - nowTime
+            activity.status = 5
+            activity.countDownTime = this.formatTimeBySec(diffSec)
+            activity.statusText = "即将开始"
+            return
+        } 
+        activity.status = 2
+        activity.statusText = "进行中"
+    },
+    
+    fixBeginTime(time, hourTime) {
+        if (this.isEmpty(hourTime)) {
+            return time
+        }
+        const date = new Date(time * 1000)
+        const ymd = date.getFullYear(date) + "-" + (date.getMonth() + 1) + "-" + date.getDate()
+        const fullH = new Date(ymd + " " + hourTime).getTime() / 1000;
+        return fullH > time ? fullH : time
+
+    },
+    fixEndTime(time, hourTime) {
+        if (this.isEmpty(hourTime)) {
+            return time
+        }
+        const date = new Date(time * 1000)
+        const ymd = date.getFullYear(date) + "-" + (date.getMonth() + 1) + "-" + date.getDate()
+        const fullH = new Date(ymd + " " + hourTime).getTime() / 1000;
+        return fullH < time ? fullH : time
+    },
+    formatTimeBySec(sec) {
+        const day = Math.floor(sec / 86400)
+        const hour = Math.floor((sec % 86400) / 3600)
+        const min = Math.floor(((sec % 86400) % 3600) / 60)
+        const s = Math.floor((sec % 86400) % 3600 % 60)
+        let rt = ''
+        if (day > 0) {
+            rt = day + '天'
+        }
+        rt += this.formatHMS(hour || 0) + ":"
+        rt += this.formatHMS(min || 0) + ":"
+        rt += this.formatHMS(s || 0)
+        return rt
+    },
+    formatHMS(h) {
+        if (h < 10) {
+            return 0 + "" + h
+        }
+        return h
+    }
+}

+ 1 - 1
pages/luckDraw/detail.wxml

@@ -100,7 +100,7 @@
             app-id="wxd92a2d29f8022f40"
             path="page/index/index"
             open-type='navigate'>
-                去兑换
+                去使用
             </navigator>
         </view>
         <image class="_bg" src="/images/luck-draw/hitdlgbg.png" />