开发日常小结(14):项目小功能:实现倒计时功能(js实现),基于java数据传递

用js做一个倒计时(时分秒),js中倒计时器怎么实现 1.核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时 ,但是不能拿着时分秒相减,比如 02 分减去22分,结果会是负数的,所以要转换为毫秒;2.用时间戳来做,用户输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数;3.把剩余时间总的毫秒数转换为天、时、分、秒 (时间戳转换为时分秒)。利用JavaScript函数做一个简单的倒计时。 阅读详情

2018年5月13日17:26:50

【1】前言

运营部姐姐发来一个留言:加个倒计时吧,这样看着舒服。然后,我就开始重新看模块的相关代码了(了解数据流的传递过程,是非常重要的)。经过努力,还是解决了这个问题,如下图所示:



【2】原理

开发必须注重效率,因此要明确需求:

1)假如查询的玩家没有封号,那就不需要倒计时了;

2)假如查询的玩家被封号了,那就要获取封禁开始时间、封禁所需时间和当前时间了,然后就是js的特效展示;

3)做了倒计时功能还不算结束,因为还要考虑到如下3个问题:

    3.1 倒计时正常结束时,需要自动解封功能的;

    3.2 倒计时还没结束,运营部姐姐点击了解封(强制结束禁封状态),那就需要对倒计时做些动作了;

    3.3 倒计时有了,假如新开了一个标签页,然后对玩家操作,会不会有并发风险??


【3】后端的数据获取(当前倒计时的初值)

忽略掉数据库和企业框架,下面是一段java代码:

	//玩家的是否被封禁的信息
	BlackWhiteListInfo blackWhiteListInfo = blackWhiteListData.getBlackRoleInfo(roleId);
	if(null != blackWhiteListInfo && blackWhiteListInfo.getIsBlockNow()){
		json.element("isBlockNow", true);
		//int leftHours = (int)(blackWhiteListInfo.getExpireTime() - (System.currentTimeMillis() - blackWhiteListInfo.getBlockTime().getTime())/60/60/1000);
		long leftSeconds = (long)(blackWhiteListInfo.getExpireTime()*3600 - (System.currentTimeMillis() - blackWhiteListInfo.getBlockTime().getTime())/1000);
		json.element("leftAccountReleaseHour", leftSeconds/3600);
		json.element("leftAccountReleaseMinute", (leftSeconds%3600)/60);
		json.element("leftAccountReleaseSecond", (leftSeconds%3600)%60);
		json.element("expireTime", blackWhiteListInfo.getExpireTime());
	}else{
		json.element("isBlockNow", false);
		json.element("leftAccountReleaseTime", 0);
		json.element("expireTime", -1);
	}

这里使用了json封装好 leftAccountReleaseHour、leftAccountReleaseMinute、leftAccountReleaseSecond;然后通过request请求,发送给前端页面,这里不做过多讲解;


【4】js实现页面倒计时

大部分的jsp页面获取值,都是用json,这里也不例外;下面是倒计时的相关代码:

1. 

				<div id="unBlockAccount" class="form-horizontal" id="unBlockAccount">
					<label class="text text-center center-block" id="accountDesc">
							距离自动解封时间还有4小时
					</label>
					<button id="unBlockAccountBtn" type="submit" class="btn btn-primary center-block">解封</button>
				</div>

2.

	<script type="text/javascript">
		//开启全局定时器
		var hour = -1;//倒计时
		var minute = -1;
		var second = -1; 
		var state = -1; //0:禁封状态;1:解禁状态或永久禁封
		var intDiff = parseInt(60);
		var timer = window.setInterval(function(){
			if(state == 0){
			    if(intDiff > 0){ //禁封状态
			    	if(second == 0){
			    		if(minute > 0){
				    		second = 60;
				    		minute --;
			    		}else if(minute == 0){
			    			if(hour > 0){
					    		second = 60;
			    				minute = 59;
				    			hour --;
				    		}else if(hour == 0){
				    			//alert("自动解封!!");
		    					state = 1;
			    				$("#unBlockAccountBtn").click();
			    				$("#search-btn").click();
			    			}
			    		}
			    	}
			    	second--;
				    //console.log("test "+hour+":"+minute+":"+second+" state: "+state);
					$("#accountDesc").html("距离自动解封时间还有"+hour+" 小时 "+minute+" 分钟 "+second+" 秒 ");
			    }else if(intDiff == 0){
			    	intDiff = 60;
			    }
			    intDiff--;	
			}
	    }, 1000);
</script>

3.

				$("#forbiddenCount").html("历史被封次数: "+data.forbiddenCount+"次");
	  	 		//判断玩家是已封号还是未被封号
				if(data.isBlockNow){
					//已经被封号
					$("#blockAccount").hide();
					$("#unBlockAccount").show();
					if(data.expireTime == -1){
						$("#accountDesc").html("此账号永久封号,可手动解封");
					}else{
						hour  = data.leftAccountReleaseHour;
						minute = data.leftAccountReleaseMinute;
						second = data.leftAccountReleaseSecond;  
						state = 0;
					}
				}else{
					//未被封号
					$("#blockAccount").show();
					$("#unBlockAccount").hide();
				} 
					

解释:

1、是页面布局控件;

2、倒计时使用的是:window.setInterval(),赋值给一个全局变量;

3、每当刷新页面时,获取json的值,赋值给全局变量(hour、minute和second),并设置状态位;这样每1000ms循环执行一次操作;然后实现倒计时的效果。

4、如果有解封,那么对state变量设置一下即可;定时器是不断地在跑的;


参考:《http://www.jq22.com/jquery-info327》


基于SSM框架的毕业设计管理系统的设计与实现(附资源下载) 我的毕业设计就叫毕业设计管理系统的设计与实现,哈哈 目录 1.摘要 2.需求分析 3.数据库设计 4.功能模块的设计与实现 5.项目截图 6.项目源码 1.摘要 毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的... 阅读详情

相关推荐

GenomeSurvyIndex设计--随笔017

摘要: GenomeSurvyIndex是一款自动化多倍体基因组调查工具,整合FastK、Smudgeplot和GenomeScope2.0三大核心组件。该工具通过k-mer频谱特征自动识别基因组倍性类型,包括二倍体(1:2:4)和同源四倍体(1:2:3:4),并采用3a1b>2a2b算法判定同源/异源多倍体。工具提供完整的conda环境配置方案,封装为Python脚本实现全流程自动化分析,包含k-mer计数、倍性判定、基因组特征计算等功能,最终输出标准化报告和可视化图表。该方案可直接部署使用,适用于

weixin_44874487的博客 474

JavaScript实现倒计时功能

本文主要介绍JavaScript中封装时间函数和如何倒计时功能,没有拐弯抹角,拿走即用。

modao的博客 6517

simulink中MIL测试简单理解

输入信号设置如下:选中New Test Case1 ---INPUT。5、新建(选择New,Test from Spreadsheet)6、可以新建也可以导入(Use existing test)Source:Output为自己预测结果。3、右键子系统(Create)打开生成表格,可以自己调试。4、创建测试用例表格。保存路径为模型路径。保存路径在模型路径。8、运行测试设h置。

lingdianhuat的博客 1784

用javascript编写倒计时

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style type="text/css"> .Mainshow{ width: 1000px; margin: 0 200px; height: 50.

m0_58451019的博客 1143

Blender点云渲染实战:用Geometry Nodes快速搞定论文配图(附Cycles渲染技巧)

本文详细介绍了如何利用Blender的Geometry Nodes系统,高效地将三维点云数据转化为高质量的科研论文配图。通过实战步骤,从数据导入、节点化几何处理、材质赋予到Cycles渲染引擎的优化设置,手把手教你制作出专业、美观的可视化图像,助力科研成果展示。

hp777的博客 265

SigmaStar(星宸科技)SSC33X系列

目前,SSC33X系列已经量产了接近两年,SDK成熟稳定,功耗表现良好,图像效果出色,广泛应用在AI枪机、AI球机、AI云台机、多目摄像机、停车场闸机、人脸门禁、人脸锁、门铃猫眼等产品上。

Comake Online的博客 1万+

Java时间类型以及前端和数据端的传输

Date虽然sql也有一个Date类,但其实相对而言,用的更多的是util包下的Date,所以也就以util包下的Date为例构造方法Date():获取当前系统的的时间Date(Long millisec):获取传入的时间戳(毫秒数)的时间(时间戳是 1970 年 1 月 1 日(00:00:00 )至当前时间的总秒数;)对于Date有几个常用的方法long getTime( ):返回自1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数.

weixin_44691025的博客 5324

运营商拼命封杀的PCDN到底是个啥?

最近一段时间,很多宽带用户发现自家的网速莫名其妙变慢了,甚至收到了运营商发来的“违规使用宽带”警告短信,严重的甚至直接被断网。很多人一头雾水:我交了钱办的宽带,自己买的插件或者京东云、网心云这些硬件赚点“电费”,怎么就成了运营商眼中的“过街老鼠”?今天,我们就把这层窗户纸捅破,深度剖析这个让互联网大厂省下几十亿、让运营商恨得牙痒痒、让用户夹在中间进退两难的技术黑话——。

网络技术联盟站 917

js实现倒计时效果

既然是倒计时,肯定是要涉及到时间日期的操作了。js 里可以用 new Date() 来创建各种格式的时间日期。还涉及到定时器的使用。计算出当前时间和目标时间的时间差,还要对剩余时间做下处理,得出时、分、秒,然后通过重复调用,每隔 1 秒刷新一次就实现了。

徐三岁的博客 1408

gem5-gpu教程01 部署(实测可跑通)

这将GPGPU-Sim更新为与gem5-gpu兼容的最新版本。此版本是已知可用于gem5 gpu的最新版本。

qq_20388971的博客 1404

人形机器人开源资源大盘点(四):硬件开源平台

开源人形机器人平台推动技术民主化 本期聚焦四大开源人形机器人平台:斯坦福的ToddlerBot以6000美元低成本实现30自由度运动,支持仿真到现实的零样本迁移;法国Reachy2被HuggingFace收购,融合开源AI与硬件,适配医疗、工业等场景;国内OriginMan基于ROS2全开源,集成大模型能力,支持深度改造;OAN框架则为经典NAO机器人注入开源活力,扩展交互功能。这些平台通过不同路径降低研发门槛,推动人形机器人技术走向开放共享的未来。

Studying…… 370

java简易计时器的实验总结,开发日常小结(14):项目小功能:实现倒计时功能(js实现),基于java数据传递...

2018年5月13日17:26:50【1】前言运营部姐姐发来一个留言:加个倒计时吧,这样看着舒服。然后,我就开始重新看模块的相关代码了(了解数据流的传递过程,是非常重要的)。经过努力,还是解决了这个问题,如下图所示: 【2】原理开发必须注重效率,因此要明确需求:1)假如查询的玩家没有封号,那就不需要倒计时了;2)假如查询的玩家被封号了,那就要获取封禁开始时间、封禁所需时间和当前时间了,然后就是js...

weixin_31009269的博客 441

2.Vivado软件基础操作

在本章节,我们以一个简单的计数器实例,介绍FPGA开发软件Vivado的基础操作流程,计数器实例程序的设计,在本课程中先不同掌握,后续课程将针对verilog编程进行讲解。 打开Vivado软件,会看到如下的界面: 点击如下图所示的: 点击Next> 将这个地方,设置路径,注意路径必须是英文路径。且文件夹名称第一个字符不能为数字。所有路径的名称的字符数量不能超过144个符号。 点击Next> 点击Next> 点...

FPGA/MATLAB学习教程/源码/项目合作开发 4478

javaScript 中的一些日常用法总结

从今天开始把开发中常用到的js语法 一一记录下来 方便以后复习回顾用; 1:对字符串进行替换replace 以及replaceAll replace : var begin_date =begin.replace("-",""); replaceAll: 1 var begin_date =begin.replaceAll("-",""); 总结repl...

weixin_34242509的博客 128

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【课程设计】基于Java的学生请销假审批管理系统的设计与实现毕业设计源码130939

系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:首页、用户管理、公告通知、请假申请、请假审批等功能 用户进入系统可以进行首页、通知公告、请假审批、请假申请等功能操作。...

专业程序开发源的博客 5200

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm企业办公平台6wwzi(程序+源码+数据库+调试部署+开发环境)

随着信息技术的飞速发展,企业办公方式正逐步向数字化、智能化转型。传统办公模式存在沟通不畅、信息孤岛、流程繁琐等问题,影响了工作效率和团队协作能力。因此,构建一套集成化、智能化的企业办公平台,成为提升企业管理水平和运营效率的关键。

Kittyxia001的博客 1129

(附源码)基于Java SpringBoot的电影院管理系统设计与实现-毕业设计 课程设计 011633

电影管理: (1)电影列表:展示所有电影,形成的列表样式。 (2)电影搜索:通过电影名、电影类目来搜索电影。 (3)图片上传:给电影添加电影图片。 (4)增加电影; (5)更新电影:更新电影的,如电影名称、电影分类、电影海报、导演、演员、上映日期、放映场次、放映时间、放映厅、影院名称、影院地址、价格、座位总数等。 (6)电影上下架; 资讯数据管理: (1)图片上传:给资讯添加资讯图片。 (2)增加资讯; (3)更新资讯:更新资讯的,如资讯标题、内容等。 (4)资讯数据删除销毁; 选座预订记录管理: ……

Q_3461074420的博客 1万+

JSP银行OA系统2xkom程序+源码+数据库+调试部署+开发环境

在金融科技迅猛发展、银行业务日益复杂的当下,传统办公模式效率低、信息传递不及时等问题凸显。银行OA系统作为现代化办公的关键工具,能有效整合银行内部资源,打破部门壁垒,实现信息的快速流通与共享。通过自动化流程处理,可大幅减少人工操作,降低出错率,提升银行整体运营效率与决策科学性,增强市场竞争力,对银行的数字化转型与可持续发展意义重大。

Kittyxia001的博客 1009

【课程设计】(附源码)Springboot+mysql+基于VUE框架的商城综合项目设计与实现 毕业设计111612

本商城综合项目采用的数据库是Mysql,使用java技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

Biye_Design的博客 4735

Java项目:149 基于SSM的毕业设计管理系统

毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的工作量,还能较大地提高学生和教师的效率。本系统采用B/S模式,主要开发工具为Eclipse/Idea(Oxygen.1a Release),用到的编程语言有Java、JavaScript和JSP,数据库采用MySQL 5.7,服务器则用的Apache Tomcat 9.0。

舒克日记的博客 1019

基于nodejs+vue基于Java的信公OA办公系统[开题+源码+程序+论文]计算机毕业设计

研究基于Java的信公OA办公系统,对于推动企业的数字化转型具有重要意义。该系统能够整合企业内部的各类资源,实现信息的快速传递和共享,减少人工操作的繁琐和错误。同时,通过系统化管理,可以规范企业的业务流程,提高工作效率。此外,该系统还具备较高的安全性和稳定性,能够保障企业数据的安全性和完整性。因此,研究和开发这一系统不仅有助于提升企业的竞争力,还能为企业的可持续发展奠定坚实的基础。

星海学长_毕设 662

JavaScript数字格式化:保留两位小数的精确实现与避坑指南

数字格式化是前端开发中的基础技术,尤其在金融、电商等业务场景中,精确控制小数位数至关重要。其核心原理涉及JavaScript的浮点数表示(IEEE 754标准)和舍入规则。理解并正确处理精度问题,能有效避免UI显示异常和金额计算错误等风险,提升应用的健壮性。本文聚焦于保留两位小数这一高频需求,深入剖析了`toFixed`方法的银行家舍入法陷阱、浮点数精度误差等常见问题,并提供了基于`Math.round`配合乘除法、字符串解析以及`Number.EPSILON`校正等工程实践方案,帮助开发者在不同业务场景下

weixin_30847939的博客 431

基于ssm+vue日常分享网络平台【开题+程序+论文】-计算机毕业设计

其次,重点开发日常分享功能,支持用户发布文字、图片、视频等多种类型的分享内容,并通过标签、分类等方式实现内容的组织与管理。因此,构建一个专注于日常分享的网络平台,旨在为用户提供一个更加自由、便捷、富有情感共鸣的空间,成为当前互联网领域的热点话题。该平台将融合用户日常生活的点滴,通过多样化的分享类型,促进用户间的情感交流与信息互通,满足现代人对社交的多元化需求。其次,通过精准定位用户需求,设计并优化平台功能,如用户画像构建、智能推荐系统等,能够有效提升用户粘性,促进社区文化的形成。

永恒毕设程序 861

【课程设计】(附源码)springboot水环境检测系统的设计与实现 毕业设计041446

系统主要针对水环境监测业务开展,涉及监测点管理、水环境监测数据管理、项目信息管理等方面。本设计主要实现集人性化、高效率、便捷等优点。系统使用Java语言的Springboot框架,采用MVVM模式进行开发,数据方面主要采用的是微软的Mysql关系型数据库来作为数据存储媒介,配合前台技术完成系统的开发。

Biye_Design的博客 4264

JAVA-WEB

文章目录1. JAVA-WEB介绍2. HTML3. CSS样式4. JavaScript5. Vue.js6. xml解析7. Tomcat服务器8. http协议9. Servlet10. Thymeleaf11. Cookie与Session12. Ajax13. Filter14. 监听器15. WEB组件注解用法16. 事务控制 1. JAVA-WEB介绍 2. HTML 3. CSS样式 4. JavaScript 5. Vue.js 6. xml解析 7. Tomcat服务器 8. http协

weixin_58005665的博客 1060

java+vue计算机毕设小学学生家校联系系统的设计与实现【源码+开题+论文】

随着信息技术的飞速发展,教育领域正经历着前所未有的变革。小学作为学生教育生涯的起点,其教育质量直接关系到学生的未来发展。然而,在传统家校沟通模式中,信息的传递往往受限于时间和空间的限制,导致家校之间的合作不够紧密,家长难以及时了解学生在校情况,教师也难以全面掌握学生的家庭环境和学习习惯。因此,开发一款高效、便捷的小学学生家校联系系统显得尤为重要。该系统旨在打破传统沟通壁垒,通过数字化手段实现家校信息的无缝对接,促进家校共育,共同为学生的健康成长和学习进步创造良好的环境。

sheji310的博客 783
上一篇: java基础(44):数组转列表 -- Arrays.asList()的使用
下一篇: 开发日常小结(10):项目如何使用图片服务器API?
后台技术汇
博客等级 码龄11年 670粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值