重写了一下,增强了通用性,重写时发现月份和年份计算很复杂,因为月份天数不一样,年份又涉及平年闰年;
本人数学实在不佳无法写出算法,哪位大大日后写出来了分享给小弟一份,谢谢~。


 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head> <body>
<p id="disBlock"></p>
</body>
<script type="text/javascript">
var results={millisecond:"", second:"",minute:"", hour:"",day:"",month:"",year:""}; //结果集
//计算剩余
function calcSurplus(fdate){
var odate = new Date(fdate); //未来的时间
var cdate, surplusDate; //当前时间,剩余时间
/* var year = new Date().getYear(); //当前年份
var february = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28; //计算二月份的天数
var days = new Array(31,february,31,30,31,30,31,31,90,31,30,31);*/
function result() {
cdate = new Date();
surplusDate = odate.getTime() - cdate.getTime(); //未来时间与当前时间相差的毫秒
with(results){
millisecond = surplusDate % ; //总毫秒数模1000就是换算为秒后剩余的毫秒
surplusDate -= millisecond; //总毫秒减去剩余的毫秒
second = (surplusDate / ) % ; //(surplusDate / 1000)减去多余的毫秒剩下的毫秒/1000,
surplusDate -= second * ; //则为剩余毫秒转换为秒后的数值,然后用该数值模60则为剩下的分钟
minute = (surplusDate / ) % ; //后面的运算以此类推,先减去前面已经算过的毫秒值
surplusDate -= minute * ; //然后用当前毫秒除以当前单位的运算值,然后取模该单位的上级单位
hour = (surplusDate / ) % ;
surplusDate -= hour * ;
day = (surplusDate / ) ;
/*surplusDate-=day*86400000;
month=(surplusDate / (86400000*days[cdate.getMonth()]))%12;
surplusDate-=month*(86400000*days[cdate.getMonth()]);
year=Math.floor(surplusDate/(86400000*(337+february))); //年没有上级单位,所以只需要用剩下的毫秒去除以换算值然后在向下取整就可以了*/
/* year=Math.floor(surplusDate/(86400000*(365))); //剩余年数
surplusDate-=year*31536000000;
for(var i=1;i<=year;i++){ //对年数循环,检查需要走过多少个闰年
if((cdate.getYear() % 4 == 0 && cdate.getYear() % 100 != 0) || cdate.getYear() % 400 == 0 ){
surplusDate-=86400000; //如果是闰年,多减一天的毫秒数
}
}*/
// 平年平均每月的毫秒数 2628000000
// 闰年平均每月的毫秒数 2635200000
/* var mis=february==28?2628000000:2635200000;
month=(surplusDate/mis)%12;
surplusDate-=month*mis;*/
}
return results;
}
return result;
} var setHtml = calcSurplus("2015/07/12 16:08:11"); setInterval(function(){
setHtml();
var html=/*results.year+"年"+results.month+"月"+*/results.day+"天"+results.hour+"时"+results.minute+"分"+results.second+"秒"+results.millisecond+"毫秒";
document.getElementById("disBlock").innerHTML=html;
},);
</script>
</html>


JS倒计时功能,给定时间返回规定格式倒计时时间的更多相关文章

  1. c# 处理js序列化时 datetime返回UTC格式的问题

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...

  2. 点滴积累【JS】---JS小功能(setInterval实现图片效果显示时间)

    效果: 代码: <head runat="server"> <title></title> <script type="text ...

  3. JS实现为控件添加倒计时功能

    一.概述 在有些报表需求中,需要为控件添加倒计时功能,限制到某一个时间点后能进行一项操作或不能进行某项操作,比如查询,导出功能等等,又需要人性化地显示还有多少时间,即倒计时功能,比如下图中我们限制这个 ...

  4. 原生js实现一个简单的倒计时功能

    大家好,我是云中君!欢迎大家来观看我的博客 之前那,在群里看到很多人问,关于电商网站中的倒计时功能怎么实现,很多人说在网上找了很多插件,但是不是很会用,所以今天就在这里分享一下我封装的一个小的倒计时功 ...

  5. js之验证码倒计时功能

    <!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" conten ...

  6. 模块:js实现一个倒计时功能

    1.给显示内容加样式 <style> #p1{font-size: large; color: red;} </style> 2.客户端页面 <div id=" ...

  7. js实现是倒计时功能

    工作中经常用到倒计时的功能,最近在整理之前做的项目的时候,发现自己写过一个倒计时的功能的效果,这里和大家分享下!实现这个功能是用原生js写的,不需要加载额外的库文件!功能比较简单,但是可以在此基础上扩 ...

  8. 微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能

    微信小程序+WEB使用JS实现注册[60s]倒计时功能开发步骤: 1.wxml页面代码: <text>绑定手机</text> <form bindsubmit=" ...

  9. js 倒计时功能,获取当前时间的年月日,时分秒

    一.实现当前时间到指定截止时间的倒计时功能 <html> <head> <title>TEST</title> </head> <bo ...

随机推荐

  1. mysql基本语法

    MySql一些基本语法      3.3.5 直接在数据库目录中创建或删除 用上述方法创建数据库,只是MySQL数据目录下面创建一个与数据库同名目录,同样删除数据库是把这个目录删除. 所以,你可以直接 ...

  2. javascript 减少回流

    减少回流(REFLOWS) 当浏览器重新渲染文档中的元素时需要 重新计算它们的位置和几何形状,我们称之为回流.回流会阻塞用户在浏览器中的操作,因此理解提升回流时间是非常有帮助的. 回流时间图表 你应该 ...

  3. 2016huasacm暑假集训训练三 G - 还是畅通工程

    题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/G 这题和上一道题差不多,还更简单点,直接用prim算法就行,直接贴AC代码: im ...

  4. MongoDB数据库的操作,增删改查

    在student集合中插入一些数据 db.student.insert({ "学号":10010, "姓名":"德莱文", "年龄 ...

  5. spawn协程学习

    对于IO密集型的程序,一般比较高效的做法是选择异步来实现,因为使用异步的方法更容易写出高效的程序.然而使用异步的话,经验较少的人往往会使自己的程序结构变得很混乱,进而导致程序的可读性变差.记得有人说过 ...

  6. 实验五(简单嵌入式WEB服务器实验)问题总结

    实验五问题总结 问题链接:<信息安全系统设计基础>实验五实验报告 虽然将07_httpd文件中全部拷贝进了bc中,文件夹中拥有Makefile文件,但是还是无法通过make得到该文件夹中c ...

  7. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

  8. html5相关知识点的总结(有一些错误或者不足的地方)

    1.页面结构上的一些宽松改变 <!DOCTYPE html>默认为标准模式 <meta charset="UTF-8"> 2.html5中新增的一些语义化标 ...

  9. SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现

    SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即“service”阶段.在“service”阶段中,每一次Http请求到来,容器都会启动一个请求线程,通过serv ...

  10. C#中调用user32.dll库的keybd_Event函数,操作键盘

    keybd_event()的函数原型是: void keybd_event( byte bVk,          //虚拟键码 byte bScan,       //该键的硬件扫描码 dword ...