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


 <!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(Percona Server) 5.6 主从复制

    MySQL(Percona Server) 5.6.15 主库:192.168.2.21 从库:192.168.2.22 例如我们同步的数据库为:test. 如果需要同步多个数据库下面会有说明. My ...

  2. 安卓中級教程(3):ScrollView

    以上是scrollview的圖例,可見srollview是一種滑動功能的控件,亦是非常常見的控件. 一般寫法如下: package com.mycompany.viewscroller; import ...

  3. jQuery系列:五个模块总结

    Query插件,以备并希望在前端方面有所长进.请批评指正. 一,类型判断全解 JQuery判断类型扩展方法:$.type() /*type: function( obj ) { if ( obj == ...

  4. Vue.js起手式+Vue小作品实战

    本文是小羊根据Vue.js文档进行解读的第一篇文章,主要内容涵盖Vue.js的基础部分的知识的,文章顺序基本按照官方文档的顺序,每个知识点现附上代码,然后根据代码给予个人的一些理解,最后还放上在线编辑 ...

  5. JMeter 将上一个请求的结果作为下一个请求的参数——使用正则提取器(转载)

    在接口测试和压力测试过程中,经常会将几个流程串联起来才能测试.如:我要进行获取用户信息接口测试,我就要先登录成功后,才能获取用户信息.所以,我就要首先要登录,获得我的登录凭证(tokenId或tick ...

  6. Linux 基础命令-CURL 表单上传文件

    CURL -F, --form <name=content> (HTTP) This lets curl emulate a filled-in form in which a user ...

  7. C# 获取计算机信息

    //C#获取当前计算机的系统信息 //系统标识符和版本号 string strSystem = Environment.OSVersion.ToString(); //获取映射到进程上下文的物理内存量 ...

  8. 数据库 定义 bit 类型 (true=1,false=0)

    当Sql Server数据库定义 数据 为 bit 类型时, 编写代码时 要用 true or false 赋值. 例如: OffTheShelf  定义类型为  bit 后台赋值时 OffTheSh ...

  9. ubuntu与登录有关的log配置信息

    1. 所有sudo, sshd, sftp登录的信息都在auth.log中. 2. pam的配置是在/etc/pam.conf与/etc/pam.d中,在文件夹pam.d对cron, sudo,ssh ...

  10. C#实现对远程服务器的内存和CPU监控

    C#实现对远程服务器的内存和CPU监控小记 1.  主要使用到的组件有System.Management.dll 2.  主要类为 :ManagementScope 连接远程服务器示例代码: priv ...