countDown.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //小于10的格式化函数
  2. function timeFormat(param) {//小于10的格式化函数
  3. return param < 10 ? '0' + param : param;
  4. }
  5. //日期改为时间戳(时分秒)
  6. function dateNum(date) {
  7. date = date.substring(0, 19);
  8. date = date.replace(/-/g, '/');
  9. var timestamp = new Date(date).getTime();
  10. return timestamp
  11. }
  12. //倒计时函数
  13. function countDown(_that, endTimeList) {
  14. // 获取当前时间,同时得到活动结束时间数组
  15. let newTime = new Date().getTime();
  16. let countDownArr = [];
  17. var len = endTimeList.length
  18. // 对结束时间进行处理渲染到页面
  19. for (let i = 0; i < len;i++){
  20. let endTime = dateNum(endTimeList[i])
  21. let obj = null;
  22. // 如果活动未结束,对时间进行处理
  23. if (endTime - newTime > 0) {
  24. let time = (endTime - newTime) / 1000;
  25. // 获取天、时、分、秒
  26. let day = parseInt(time / (60 * 60 * 24));
  27. let hou = parseInt(time % (60 * 60 * 24) / 3600);
  28. let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
  29. let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
  30. obj = {
  31. day: timeFormat(day),
  32. hou: timeFormat(hou),
  33. min: timeFormat(min),
  34. sec: timeFormat(sec),
  35. status:true
  36. }
  37. } else {//活动已结束,全部设置为'00'
  38. obj = {
  39. day: '00',
  40. hou: '00',
  41. min: '00',
  42. sec: '00',
  43. status: false
  44. }
  45. }
  46. countDownArr.push(obj);
  47. }
  48. // 渲染,然后每隔一秒执行一次倒计时函数
  49. _that.setData({ countDownList: countDownArr })
  50. }
  51. module.exports = {
  52. countDown: countDown //倒计时函数
  53. }