AngularJS 支付倒计时功能实现思路


Posted in Javascript onJune 05, 2017

说明:

1、前端只负责展示倒计时,不具备实际功能;

2、实际实现方式:数据库中设置一个每分钟执行一次的定时任务(故与实际情况会有一分钟以内的误差),只要订单创建时间超过15分钟会自动将订单状态改为“取消”。

遇到难点:

1、字符串转date中,苹果satari浏览器不支持“yyyy-mm-dd hh:mi:ss”格式,须将字符串转为“yyyy/mm/dd hh:mi:ss”

new Date($scope.order.createtime.replace(/\-/g, "/"))

2、AngularJS 对JavaScript自带的 定时任务window.setInterval 支持不完善,需使用其自有的方法 $interval

html相关代码(使用ionic框架):

<div ng-class="{true: 'payCountDown', false: ''}[payClass]" ng-bind="payCountDown"> 
</div>

js相关代码:

$scope.order = Storage.get("order");//order为后台传来的订单信息,里面包含订单创建时间 
  var createTime;//订单创建时间 
  var curTime;//当前时间 
  var totalSecond;//设置计时总时间(分钟) 
  if($scope.order.createtime !=null){ 
    //为了支持safari浏览器 
    createTime=new Date($scope.order.createtime.replace(/\-/g, "/")).getTime(); 
    curTime=new Date().getTime(); 
    totalSecond=Math.round((createTime+15*60*1000-curTime)/1000); 
  }else{ 
    totalSecond = 15 * 60;  
  } 
   
  /** 
   * 支付倒计时 
   */ 
  timePromise = $interval(function(){  
    if (totalSecond >= 0) { 
      var t1 = Math.floor(totalSecond / 60); 
      var m = t1 < 10 ? "0" + t1 : t1; 
      var t2 = totalSecond - t1 * 60; 
      var s = t2 < 10 ? "0" + t2 : t2; 
      totalSecond = totalSecond - 1; 
      $scope.payClass=true;//添加class 
      $scope.payCountDown="支付剩余时间:"+m+"分钟"+s+"秒" 
    } else { 
      $scope.confirmPay=true; 
      $scope.payClass=true;//添加class 
      $scope.payCountDown= "支付超时,请重新下单!"; 
      $interval.cancel(timePromise);//终止倒计时 
    } 
  },1000)

css代码:

.payCountDown{ 
  color:#FFFFFF; 
  background-color:red; 
  text-align:center; 
  padding:14px 0; 
  opacity:0.8 
}

运行效果:

AngularJS 支付倒计时功能实现思路

补充:

oracle定时任务代码:

begin 
 sys.dbms_job.submit(job => :job, 
           what => 'UpdateOrderStatues;', 
           next_date => to_date('05-06-2017 10:05:50', 'dd-mm-yyyy hh24:mi:ss'), 
           interval => 'sysdate +1/1440'); 
 commit; 
end; 
/

以上所述是小编给大家介绍的AngularJS 支付倒计时功能实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
Apr 29 Javascript
常用简易JavaScript函数
Apr 09 Javascript
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
jquery的live使用注意事项
Feb 18 Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
浅谈JavaScript事件的属性列表
Mar 01 Javascript
ECMAScript 5中的属性描述符详解
Mar 02 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
深入浅析JavaScript中的3DES
Aug 24 Javascript
JS实现点击按钮可实现编辑功能
Jul 03 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
Jun 05 #Javascript
Vue2.0实现购物车功能
Jun 05 #Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 #Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
Jun 05 #Javascript
详解Angular 4 表单快速入门
Jun 05 #Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 #Javascript
Node.js开发第三方微信公众平台
Jun 05 #Javascript
You might like
ThinkPHP写第一个模块应用
2012/02/20 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python解析xml简单示例
2019/06/21 Python
Python restful框架接口开发实现
2020/04/13 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
护士个人简历自荐信
2013/10/18 职场文书
店长助理岗位职责
2013/12/13 职场文书
服装设计专业自荐书范文
2013/12/30 职场文书
挂牌仪式主持词
2014/03/20 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
上课说话检讨书500字
2014/11/01 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
小学运动会通讯稿
2015/07/18 职场文书
党员学习型组织心得体会
2019/06/21 职场文书