美文网首页
案例-做一个30分钟倒计时

案例-做一个30分钟倒计时

作者: IT逍遥生 | 来源:发表于2018-12-27 10:08 被阅读0次

案例-做一个30分钟倒计时

今天在做支付宝小程序的一个功能时,面对这样一个需求,有一个订单,对于未付款的订单需要做一个30分钟的倒计时功能,提醒用户还有多少秒支付时间,格式为29:59。

其他的细节就不详细介绍了,下面着重介绍一下计时器功能怎么做,以及优化。

例如我现在的时间是"2018-12-20 09:22:00", 我需要计算"2018-12-20 09:20:00"这个目标时间的倒计时。

首先在公共JS中定义一个timer方法,这个方法需要一个参数,即目标时间。

这个参数格式必须符合日期格式,可以是时间戳,也可以是标准时间。

function timer(val) {

  var nowTime = new Date();

  var createdTime = new Date(val);

  var TIME = 1000 * 60 * 30;

  // 目标时间和当前时间的毫秒数

  var differ = nowTime - createdTime;

  // 目标时间超过当前时间,或目标时间与当前时间的差超过30分钟则返回0

  if (differ < 0 || differ > TIME) {

    return 0;

  };

  // 剩余时间的秒数

  differ = TIME - differ;

  // 计算分钟数

  var minute = Math.floor(differ / (60 * 1000));

  minute = minute < 10 ? '0' + minute : minute;

  // 计算秒数

  var second = Math.floor((differ - minute * (60 * 1000)) / 1000);

  second = second < 10 ? '0' + second : second;

  // 返回结果格式 29:59

  return minute + ':' + second;

}

// 调用方法

var time = timer("2018-12-20 09:20:00"); // 28:00

接下来我们优化一下,30秒固定死了,我想灵活一点。

那就再传入一个参数!

function timer(val, timeInterval) {

  var nowTime = new Date();

  var createdTime = new Date(val);

  var TIME = 1000 * 60 * timeInterval;

  // 目标时间和当前时间的毫秒数

  var differ = nowTime - createdTime;

  // 目标时间超过当前时间,或目标时间与当前时间的差超过30分钟则返回0

  if (differ < 0 || differ > TIME) {

    return 0;

  };

  // 剩余时间的秒数

  differ = TIME - differ;

  // 计算分钟数

  var minute = Math.floor(differ / (60 * 1000));

  minute = minute < 10 ? '0' + minute : minute;

  // 计算秒数

  var second = Math.floor((differ - minute * (60 * 1000)) / 1000);

  second = second < 10 ? '0' + second : second;

  // 返回结果格式 29:59

  return minute + ':' + second;

}

// 调用方法

var time1 = timer("2018-12-20 09:20:00", 30); // 我需要做30分钟的倒计时

console.log(time1); // 28:00

var time2 = timer("2018-12-20 09:20:00", 60);

console.log(time2); // 58:00

如果想扩展成其他的,比如扩展"01:59:59"格式,可以从这个案例中进行修改。

相关文章

  • 案例-倒计时

    案例:发送短信倒计时 点击按钮后,该按钮60秒之内不能再次点击,防止重复发送短信。 案例:5分钟自动跳转页面 案例...

  • 案例-做一个30分钟倒计时

    案例-做一个30分钟倒计时 今天在做支付宝小程序的一个功能时,面对这样一个需求,有一个订单,对于未付款的订单需要做...

  • APICloud 上传模块,并使用教程

    APICloudModuleSDK 最近我想做一个倒计时功能(类似商城那种倒计时),但是我发现我按下了home键后...

  • 倒计时案例

    倒计时代码的步骤: 1、首先生成一个模板 倒计时:xxx天xx小时xx分钟xx秒 2、书写模板的样式 3、js逻辑...

  • 【前端案例】11 - 案例:倒计时

    注意 最好采用封装函数的方式,这样可以在执行定时器之前先调用一次这个函数, 防止刚开始刷新时有时间空白问题。

  • Python爬虫(十五)_案例:使用bs4的爬虫

    本章将从Python案例讲起:所使用bs4做一个简单的爬虫案例,更多内容请参考:Python学习指南 案例:使用B...

  • 绚丽的倒计时效果(Canvas)

    1. 案例介绍 最近在慕课网上看了一门有关Canvas的课程案例,炫丽的倒计时效果Canvas绘图与动画基础,学习...

  • js案例,倒计时

    效果:倒计时: Body部分: 距离下课还有: || JS部分: function timer(){ ...

  • 一次比赛引发的思考。……

    让每个孩子享有自信与成功!——做一个案例 (待补充)

  • 【Excel VBA】2018-09-28 关键字查询信息

    案例 案例来源:Excel和Access (微信公众号)点击 - 查看原文 做一个简单的查询系统:在这个查询系统中...

网友评论

      本文标题:案例-做一个30分钟倒计时

      本文链接:https://www.haomeiwen.com/subject/bzallqtx.html