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学术文献检索地址
如何快速启动建站代理加盟业务?

