根据后端传的时间前端js进行倒计时
一、故事背景:
1. 今天公司有个项目需求
2. 在前端页面实现一个倒计时功能
3. 初步设想:后端根据需求规定一个未来的时间,前端根据当前时间进行计算
4. 然后将时间格式化,时分秒的格式
5. 时间倒计时完成,刷新页面获取最新的页面
6. 最后在前端展示;大致是这样
二、上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="js_time_txt">
</div> <script src="./jquery-3.3.1.min.js"></script>
<script>
$(function () {
// 倒计时
var _ordertimer = null;
var data = new Date();
var txt = $('.js_time_txt');
var buyTime = '2018-09-20 22:25:59'; //开抢时间
var nowTime = '2018-09-20 22:23:45'; //接口返回当前时间
var dateDiff = new Date(nowTime) - new Date(getnow()); //请求时间戳与本地时间戳
if (dateDiff < 0) {
dateDiff = Math.abs(dateDiff);
} if (new Date(nowTime) > new Date(buyTime)) {
$('.time-range').hide(); //已开枪
return;
} else {
leftTimer(buyTime);
_ordertimer = setInterval(function () {
leftTimer(buyTime)
}, 1000);
} // 获取当前时间 xxxx/xx/xx 00:00:00
function getnow() {
var year = data.getFullYear();
var month = parseInt(data.getMonth() + 1) >= 10 ? parseInt(data.getMonth() + 1) : '' + parseInt(data.getMonth() + 1);
var day = data.getDate();
var hours = data.getHours();
var minutes = data.getMinutes();
var seconds = data.getSeconds();
var now = year + '/' + month + '/' + day + ' ' + hours + ':' + minutes + ':' + seconds;
return now;
} function leftTimer(enddate) { var leftTime = (new Date(enddate)) - new Date + dateDiff; var days = parseInt(leftTime / 1000 / 60 / 60 / 24, 10); //计算剩余的天数
var hours = parseInt(leftTime / 1000 / 60 / 60 % 24, 10); //计算剩余的小时
var minutes = parseInt(leftTime / 1000 / 60 % 60, 10);//计算剩余的分钟
var seconds = parseInt(leftTime / 1000 % 60, 10);//计算剩余的秒数
days = checkTime(days);
hours = checkTime(hours);
minutes = checkTime(minutes);
seconds = checkTime(seconds); if (days >= 0 || hours >= 0 || minutes >= 0 || seconds >= 0)
txt.html(days + "天" + hours + "小时" + minutes + "分" + seconds + "秒");
if (days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0) {
window.clearInterval(_ordertimer);
_ordertimer = null;
}
} function checkTime(i) { //将0-9的数字前面加上0,例1变为01
if (i < 10) {
i = "" + i;
}
return i;
}
})
</script>
</body>
</html>
三、由于前端水平太差,就为以后再次出现类似需求,粘贴复制,多捞哦~
根据后端传的时间前端js进行倒计时的更多相关文章
- 前端js上传文件 到后端接收文件
下面是前端js代码: <html> <head> <meta http-equiv="Content-Type" content="text ...
- 前端js怎么实现大文件G级的断点续传(分块上传)和分段下载
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- Spring MVC之中前端向后端传数据
Spring MVC之中前端向后端传数据和后端向前端传数据是数据流动的两个方向, 在此先介绍前端向后端传数据的情况. 一般而言, 前端向后端传数据的场景, 大多是出现了表单的提交,form表单的内容在 ...
- SpringBoot前端给后端传list
前端JS "]; var params = { taskList: taskList }; $.ajax({ type: "PUT", dataType: "j ...
- HTML5 file API加canvas实现图片前端JS压缩并上传
一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅 ...
- RSA加密前端JS加密,后端asp.net解密,报异常
RSA加密前端JS加密,后端asp.net解密,报异常 参考引用:http://www.ohdave.com/rsa/的JS加密库 前端JS加密代码: function GetChangeStr() ...
- 关于javaBean中boolean类型变量的set和get注入后传到前端JS中的问题
set和get方法如下: public boolean isLine() { return isLine; } public void setLine(boolean isLine ...
- Updatepanel 后端返回后,在 Updatepanel 内控件的前端 js 失效问题
实际情况:点击下箭头弹出列表,点击列表上的隐藏按钮隐藏列表. 背景:模块没有使用Js或者Jquery的Ajax功能,而是使用Asp.Net的Ajax控件--UpdatePanel + ScriptMa ...
- 后端传前端数据乱码(返回json字符串到前端)
中文乱码的问题,在开发过程中难免会遇到,而在配置好编码之后,不管是数据库,还是其他地方都配置好统一UTF-8编码之后,后端从数据库取出数据传回前端,还会乱码,这里以ssm框架为例,因为是我自己遇到的, ...
随机推荐
- 音视频处理之FFmpeg+SDL+MFC视频播放器20180411
一.FFmpeg+SDL+MFC视频播放器 1.MFC知识 1).创建MFC工程的方法 打开VC++ 文件->新建->项目->MFC应用程序 应用程序类型->基于对话框 取消勾 ...
- 关于表单中Readonly和Disabled
Readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: Readonly只针对input(text / pass ...
- 团体程序设计天梯赛 L1-006. 连续因子
Two ways: 1.接近O(n) #include <stdio.h> #include <stdlib.h> #include <math.h> int ma ...
- dubbo与springcloud对比与面试
对比:具体见此博客: http://www.sohu.com/a/108961261_468650 dubbo:组装机 springcloud:品牌机 打个不恰当的比喻:使用Dubbo构建的微服务架构 ...
- SSH框架搭建问题总结
1.eclipse中tomcat配置是否正确?能否在网页中访问的到? 如何在eclipse中配置tomcat就不说了,我们看下问题,在网页上访问tomcat的地址,为什么出现404错误呢? 解决办法: ...
- web中的懒加载
在Web应用程序中,系统的瓶颈常在于系统的响应速度.如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣.因此,提高系统响应速度,是非常重要的. Web应用程序做的最多就是和后台数据 ...
- 梯度提升树GBDT算法
转自https://zhuanlan.zhihu.com/p/29802325 本文对Boosting家族中一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 简 ...
- Betsy Ross Problem
Matlab学习中的betsy ross 问题.用matlab函数画1777年的美国国旗. 五角星绘制部分是自己想出来的方法去画上的.具体代码参考如下. 先是绘制矩形的函数 function Draw ...
- 【Asp.net入门3-01】使用jQuery-创建示例项目
过去,浏览器除了显示HTML外,很少具有其他功能.因此,早期的Web应用程序需要依赖服务 器端代码来响应用户交互并执行数据操作.Web应用程序的交互依赖HTML表单元素和浏览器向服务 器发送数据的功能 ...
- Unmanaged Exports生成Dll时的一些疑难杂症疗法
Unmanaged Exports是一个将.NET编写的静态托管函数导出成可供C/C++等直接调用的非托管函数的工具. 已经在上篇文章介绍过了,这里不再复述. 限制 你不能导出在同一个class中的重 ...