微信小程序——倒计时功能

做小程序项目中,需要做一个倒计时功能,如下图:

记录一下实现步骤:

1.考虑到这个功能可能会有多处用到,所以把倒计时的函数写在utils.js里面:

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : ‘0‘ + n
}

// 倒计时
function countDown(that) { //倒计时函数
  let newTime = new Date().getTime();
  let endTime = that.data.endTime;
  let remainTime = endTime - newTime;
  let obj = null;
  let t = ‘‘;
  // 如果活动未结束,对时间进行处理
  if (remainTime > 0) {
    let time = remainTime / 1000;
    // 获取天、时、分、秒
    let day = parseInt(time / (60 * 60 * 24));
    let hou = parseInt(time % (60 * 60 * 24) / 3600);
    let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
    let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
    obj = {
      day: formatNumber(day),
      hou: formatNumber(hou),
      min: formatNumber(min),
      sec: formatNumber(sec)
    }
  }
  t = setTimeout(function() {
    that.setData({
      countDownTxt: obj
    });
    countDown(that)
  }, 1000)
  if (remainTime <= 0) {
    clearTimeout(t);
  }
}

module.exports = {

  countDown: countDown,

}

 

2.在目标页面的js里面引用该js,并执行倒计时方法:

//获取应用实例
var app = getApp();
var ss = require(‘../../../utils/utils.js‘)

Page({

  /**
   * 页面的初始数据
   */
  data: {
    nowTime: new Date().getTime(), //获取当前日期
    endTime: 1533177202000,//结束日期时间戳
    remainTime: null,
    countDownTxt:null,
  },
  onLoad: function(options) {
    this.setData({
      remainTime: this.data.endTime - this.data.nowTime
    })
  },

  onShow: function() {
      ss.countDown(this);
  },
})

wxml:

<view class="course-countdown">
  <block wx:if="{{remainTime>0}}">
    <text class=‘block fs-28‘>距活动结束:</text>
    <view class="countdown-result fs-24 mt-5">
      <text>{{countDownTxt.day}}</text> 天
      <text>{{countDownTxt.hou}}</text> 时
      <text>{{countDownTxt.min}}</text> 分
      <text>{{countDownTxt.sec}}</text> 秒
    </view>
  </block>
  <block wx:else>
    <text class="fs-28">该活动已结束</text>
  </block>
</view>

O啦~~~

原文地址:https://www.cnblogs.com/sese/p/9355823.html

时间: 2024-08-27 03:47:34

微信小程序——倒计时功能的相关文章

微信小程序倒计时组件开发

今天给大家带来微信小程序倒计时组件具体开发步骤: 先来看下最终效果: git源:http://git.oschina.net/dotton/CountDown 分步骤-性子急的朋友,可以直接看最后那段代码. wxml文件放个text <text>second: {{second}} micro second:{{micro_second}}</text> 在js文件中调用 function countdown(that) {  var second = that.data.seco

[转] 扩展微信小程序框架功能

通过第三方 JavaScript 库,扩展微信小程序框架功能. 扩展微信小程序框架功能(1)——Promise ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库. 扩展微信小程序框架功能(2)——Generator Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同. 扩展微信小程序框架功能(3)——函数功能增强

微信小程序支付功能 C# .NET开发

微信小程序支付功能的开发的时候坑比较多,不过对于钱的事谨慎也是好事.网上关于小程序支付的实例很多,但是大多多少有些问题,C#开发的更少.此篇文档的目的是讲开发过程中遇到的问题做一个备注,也方便其他开发的同学作为参考! 1.首先建议把官方文档支付部分看上三遍,每个细节都不要放过,因为任何一个点和微信要求不符都会导致支付不成功.https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=3_1 2.经过验证的微信支付功能,会需要一些商

微信小程序超强功能,震惊了十亿微民!

微信小程序(应用号)就是用户关注了一个应用号,就像安装了一个App一样.这样微信将被打造成一个全新的appstore,而每一个应用号就是一个个的webapp. 怎么理解这个概念? 下载安装 app 太麻烦了,微信的小程序就可以满足你:安装 / 卸载 / 使用小程序,就像关注 / 取关 / 进入公众号一样简单:你用完就可以走,不用担心装个 app 占你空间. 微信小程序(应用号)有几个功能? 1.微信小程序(应用号)能实现对App个性功能的完美支持.这项服务就是将App的独立功能通过微信应用号开放

店铺无缝对接一号旺铺小程序 盘点微信小程序新增功能

前段时间,笔者写过一篇<不开发,商家店铺如何快速接入微信一号旺铺小程序>的文章.结果反响平平,无人问津.所以,笔者就在想,也许小程序真的大势已去. 盘点迄今为止微信小程序增加的功能:价值提升,商家福音到了! 盘点迄今为止微信小程序增加的功能:价值提升,商家福音到了! 但是,就在本人下定决心以后少关注小程序的当口,腾讯似乎终于觉醒了,张小龙也终于向现实低头妥协,微信官方宣布的小程序新增功能绝地反击,热乎了众多商家的心,也活跃了个人创业开发者的兴奋基因.其实,自小程序面市已来,其功能一直在不断完善

微信小程序 支付功能(前端)的实现

只提供微信小程序端代码: 1 var app = getApp(); 2 Page({ 3 data: {}, 4 onLoad: function (options) { 5 // 页面初始化 options为页面跳转所带来的参数 6 var that = this 7 //登陆获取code 8 wx.login({ 9 success: function (res) { 10 console.log(res.code) 11 //获取openid 12 that.getOpenId(res.

微信小程序转发功能

微信小程序转发涉及以下4个方法: 1.Page.onShareAppMessage({}) 设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据 2.wx.showSahreMenu() 用户点击右上角后,显示“转发”按钮 3.wx.hideShareMenu() 隐藏转发按钮,无视 Page.onShareAppMessage({}) 4.wx.getShareInfo({}) 根据 shareTicket 获取已加密的群信息 把转发流程切分:转发前配置->转发时->转

微信小程序 支付功能 服务器端(TP5.1)实现

首先下载微信支付SDK ,将整个目录的文件放在 /application/extend/WxPay 目录下 在使用SDK之前我们需要对 WxPay.Config.php 进行配置 <?php namespace app\api\service; use app\api\model\Order as OrderModel; use app\lib\exception\OrderException; use app\lib\exception\TokenException; use think\Ex

简易微信小程序签到功能

一.效果图 点击签到后 二.数据库 用一张数据表存用户签到的信息,每次用户签到都会往表中添加一条记录了用户id和签到日期的数据,如下图 三.后端 后端写两个接口,一个用于查询用户今日是否签到和签到记录总数,一个用于添加用户签到信息到数据库.这里用的是python的flask框架. (1)查询用户签到信息接口: @app.route('/get_sign/<user_id>') def get_sign(user_id): try: data=get_sign_info(user_id) exc