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

发布时间 - 2026-01-11 01:43:59    点击率:

说明:

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 
}

运行效果:

补充:

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 支付倒计时功能实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# angularjs  # 支付倒计时  # javaScript实现支付10秒倒计时  # JS支付页面倒计时的实现示例  # js实现支付倒计时返回首页  # JavaScript高仿支付宝倒计时页面及代码实现  # js制作支付倒计时页面  # 基于JS实现01支付后的10秒倒计时  # 倒计时  # 小编  # 会有  # 在此  # 给大家  # 不支持  # 实际情况  # 自带  # 不具备  # 所述  # 数据库中  # 每分钟  # 下单  # 给我留言  # 不完善  # 感谢大家  # 疑问请  # 有任何  # setInterval  # window 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港服务器租用每月最低只需15元?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  北京企业网站设计制作公司,北京铁路集团官方网站?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  香港服务器如何优化才能显著提升网站加载速度?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何确认建站备案号应放置的具体位置?  如何自定义建站之星网站的导航菜单样式?  再谈Python中的字符串与字符编码(推荐)  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  iOS UIView常见属性方法小结  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Python函数文档自动校验_规范解析【教程】  JS弹性运动实现方法分析  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  常州企业网站制作公司,全国继续教育网怎么登录?  Swift中swift中的switch 语句  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  如何在阿里云购买域名并搭建网站?  如何有效防御Web建站篡改攻击?  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel Docker环境搭建教程_Laravel Sail使用指南  微信小程序 require机制详解及实例代码  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何配置任务调度?(Cron Job示例)  JavaScript Ajax实现异步通信  教你用AI将一段旋律扩展成一首完整的曲子  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  网站制作壁纸教程视频,电脑壁纸网站?  简单实现jsp分页  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  C#如何调用原生C++ COM对象详解  如何用5美元大硬盘VPS安全高效搭建个人网站?  Android Socket接口实现即时通讯实例代码  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何使用模型观察者?(Observer代码示例)  如何在云指建站中生成FTP站点?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  bing浏览器学术搜索入口_bing学术文献检索地址  如何快速启动建站代理加盟业务?