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 相关文章推荐
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
ClearTimeout消除闪动实例代码
Feb 29 Javascript
js微信分享API
Oct 11 Javascript
JavaScript微信定位功能实现方法
Nov 29 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
ES6顶层对象、global对象实例分析
Jun 14 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
js实现菜单跳转效果
Dec 11 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
用PHP查询域名状态whois的类
2006/11/25 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
Javascript注入技巧
2007/06/22 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
python实现IOU计算案例
2020/04/12 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
小学生自我鉴定
2013/10/12 职场文书
自荐信要包含哪些内容
2013/11/06 职场文书
客服工作职责
2013/12/11 职场文书
高中英语教学反思
2014/02/04 职场文书
股份合作协议书范本
2014/04/14 职场文书
公司踏青活动方案
2014/08/16 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
会计求职简历自我评价
2015/03/10 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
导游词之安徽九华山
2019/09/18 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
python微信智能AI机器人实现多种支付方式
2022/04/12 Python