123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- 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
- }
- }
|