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 相关文章推荐
javascript获取作用在元素上面的样式属性代码
Sep 20 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
ExpressJS入门实例
Jan 14 Javascript
JavaScript中exec函数用法实例分析
Jun 08 Javascript
SublimeText自带格式化代码功能之reindent
Dec 27 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
Bootstrap3学习笔记(二)之排版
May 20 Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
Jan 18 Javascript
老生常谈JS中的继承及实现代码
Jul 06 Javascript
JavaScript 性能提升之路(推荐)
Apr 10 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 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
第十四节 命名空间 [14]
2006/10/09 PHP
php通过session防url攻击方法
2014/12/10 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
一些Python中的二维数组的操作方法
2015/05/02 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
python实现周期方波信号频谱图
2018/07/21 Python
python实现录音小程序
2020/10/26 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
Python实现网站表单提交和模板
2019/01/15 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
django-filter和普通查询的例子
2019/08/12 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
阿巴庭院:Abba Patio
2019/06/18 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
运动会四百米广播稿
2014/01/19 职场文书
双十佳事迹材料
2014/01/29 职场文书
考研复习计划
2015/01/19 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python