JS时间的计算,剩余时间的计算_js计算剩余时间-程序员宅基地

技术标签: JS,JQuery  

1.JS求时间差

注意:如果时间自己自己传入参数,要进行转换。比如date2 = new Date(Date.parse(time1))

var date1=new Date();  //开始时间
alert("aa");
var date2=new Date();    //结束时间
var date3=date2.getTime()-date1.getTime()  //时间差的毫秒数
 

//计算出相差天数
var days=Math.floor(date3/(24*3600*1000))
 
//计算出小时数

var leave1=date3%(24*3600*1000)    //计算天数后剩余的毫秒数
var hours=Math.floor(leave1/(3600*1000))
//计算相差分钟数
var leave2=leave1%(3600*1000)        //计算小时数后剩余的毫秒数
var minutes=Math.floor(leave2/(60*1000))
 

//计算相差秒数
var leave3=leave2%(60*1000)      //计算分钟数后剩余的毫秒数
var seconds=Math.round(leave3/1000)
 

alert(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")

2.显示本站已运行x天x时x分x秒,

稍稍麻烦的就是,要计算两个时间之间的年数差,必须要考虑平年和闰年的问题。
拓展:怎样才是闰年?
需要同时满足两个条件:
1、年份能被4整除;
2、年份若是100的整数倍的话,需被400整除,否则是平年
比如:1900年能被4整除,但是因为其是100的整数倍,却不能被400整除,所以是平年

//初始化时间
//为了提高兼容性注意创建日期的格式,还要添加引号
var start = new Date("2000/12/1");
//把以下内容放到script标签内,创建id为times的div,并开启下面一条语句注释
//show_date_time();

function show_date_time(){
	//周期性调用show_date_time()方法
	setTimeout("show_date_time()", 1000);

	var current = new Date();
	//总秒数
	var millisecond = Math.floor((current.getTime() - start.getTime())/1000);
	
	//总天数
	var allDay = Math.floor(millisecond/(24*60*60));

	//注意同getYear的区别
	var startYear = start.getFullYear();
	var currentYear = current.getFullYear();
	
	//闰年个数
	var leapYear = 0;
	for(var i=startYear;i<currentYear;i++){
		if(isLeapYear(i)){
			leapYear++;
		}
	}

	//年数
	var year = Math.floor((allDay - leapYear*366)/365 + leapYear);;
	//天数
        var day;
        if(allDay > 366){
	        day = (allDay - leapYear*366)%365;
        }else{
                day = allDay;
        }
	//取余数(秒)
	var remainder = millisecond%(24*60*60);
	//小时数
	var hour = Math.floor(remainder/(60*60));
	//分钟数
	var minute = Math.floor(remainder%(60*60)/60);
	//秒数
	var second = remainder - hour*60*60 - minute*60; 
	var span = "本站已运行" + (year>0 ? (year + "年"):"") + day + "天" 
        + hour + "小时" + minute + "分" + second + "秒" ; 
	document.getElementById("times").innerHTML = span;
}

//判断是否是闰年
function isLeapYear(year){
	if((year%4==0 && year%100!=0)||(year%100==0 && year%400==0)){
		return true;
	}
	return false;
}
 function GetRequest() {//截取浏览器地址栏传的参数
        var url = decodeURI(location.search); //获取url中"?"符后的字串
        var theRequest = new Object();
        if (url.indexOf("?") != -1) {
            var str = url.substr(1);
            strs = str.split("&");
            for (var i = 0; i < strs.length; i++) {
                theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
            }
        }
        return theRequest;
    }
 var Request = GetRequest();
        var relateSelect = Request["relateSelect"];
        $('#relateSelect').val(relateSelect);     
获取当前时间 包括年月日 时分秒。。。可以用在初始化时间控件为默认当天时间范围。
function getNowFormatDate() {
    var day = new Date();
    var Year = 0;
    var Month = 0;
    var Day = 0;
    var Hour = 0;
    var Minute = 0;
    var Second = 0;
    var CurrentDate = "";
    //初始化时间
    Year = day.getFullYear();
    Month = day.getMonth() + 1;
    Day = day.getDate();
    Hour = day.getHours();
    Minute = day.getMinutes();
    Second = day.getSeconds();
    CurrentDate = CurrentDate + Year + "-";
    if (Month >= 10) {
        CurrentDate = CurrentDate + Month + "-";
    }
    else {
        CurrentDate = CurrentDate + "0" + Month + "-";
    }
    if (Day >= 10) {
        CurrentDate = CurrentDate + Day;
    }
    else {
        CurrentDate = CurrentDate + "0" + Day;
    }

    if (Hour >= 10) {
        CurrentDate += " " + Hour;
    }
    else {
        CurrentDate += " 0" + Hour;
    }
    if (Minute >= 10) {
        CurrentDate = CurrentDate + ":" + Minute;
    }
    else {
        CurrentDate = CurrentDate + ":0" + Minute;
    }
    if (Second >= 10) {
        CurrentDate = CurrentDate + ":" + Second;
    }
    else {
        CurrentDate = CurrentDate + ":0" + Second;
    }

    return CurrentDate;
}
获取当天开始时间 包括年月日 时分秒
function getTodayFormatDate() {
    var day = new Date();
    var Year = 0;
    var Month = 0;
    var Day = 0;
    var Hour = 0;
    var Minute = 0;
    var Second = 0;
    var CurrentDate = "";
    //初始化时间
    Year = day.getFullYear();
    Month = day.getMonth() + 1;
    Day = day.getDate();
    Hour = day.getHours();
    Minute = day.getMinutes();
    Second = day.getSeconds();
    CurrentDate = CurrentDate + Year + "-";
    if (Month >= 10) {
        CurrentDate = CurrentDate + Month + "-";
    }
    else {
        CurrentDate = CurrentDate + "0" + Month + "-";
    }
    if (Day >= 10) {
        CurrentDate = CurrentDate + Day;
    }
    else {
        CurrentDate = CurrentDate + "0" + Day;
    }

    CurrentDate += " 00";
    CurrentDate = CurrentDate + ":00";
    CurrentDate = CurrentDate + ":00";

    return CurrentDate;
}

格式化时间格式为2018-06-07 15:33

function formatterDateTime(time) {//时间格式转换
                var date = new Date(time);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                m = m < 10 ? ('0' + m) : m;
                var d = date.getDate();
                d = d < 10 ? ('0' + d) : d;
                var h = date.getHours();
                var minute = date.getMinutes();
                minute = minute < 10 ? ('0' + minute) : minute;
                return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
            }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34571519/article/details/77251192

智能推荐

表单从gb2312的页面提交到utf-8页面,或者表单从utf-8的页面提交到gb2312页面的解决办法...-程序员宅基地

文章浏览阅读420次。·在不同编码的页面之间提交表单 ,可使用accept-charset属性,此属性FF支持,但是IE不支持--------------------------------------------------------------------1. 表单从gb2312的页面提交到utf-8页面时。即 ·<form method="post" action="2.php" accept-cha..._前端 utf-8 gb2312

nodejs 之 fs模块-程序员宅基地

文章浏览阅读36次。Node.js的文件系统的Api//公共引用var fs = require('fs'),path = require('path');1、读取文件readFile函数//readFile(filename,[options],callback);/** * filename, 必选参数,文件名 * [options],可选参数,可指定flag...

推荐系统中的文本挖掘与情感分析_基于机器学习文本情感分析的商品评价推荐系统-程序员宅基地

文章浏览阅读3.8k次。作者:禅与计算机程序设计艺术 《推荐系统中的文本挖掘与情感分析》引言1.1. 背景介绍随着互联网技术的快速发展,推荐系统作为人工智能领域的一个重要分支,已经深入到我们生活的方方面面。推荐系统通过收集用户的历_基于机器学习文本情感分析的商品评价推荐系统

Android Studio无法自动填充代码的可能原因及解决办法_android studio没有代码补全-程序员宅基地

文章浏览阅读909次。在网上看了有的是setting里面的设置问题,也有的是因为该软件的节能模式模式开了 这俩原因在CSDN上面都能搜到。我发现我的是因为 代码不做<>范围内,试试在需要自动填充的代码前面,先打一个<,应该就可以解决了。_android studio没有代码补全

分享 11 张 Python 自学知识点速查表,拿走不谢!_python学习表-程序员宅基地

文章浏览阅读302次。分享 11 张 Python 自学知识点速查表,拿走不谢!分享 11 张 Python 知识点速查表,文末有领取方式。内容是我刚从国外网站上搬运的,新鲜出炉,全是英文版没有中文翻译。目录如下:这些知识点循序渐进,由浅入深,全部制作成了 pdf,方便阅读。内容丰富,包括了基础知识点,例如关键字、数据结构、复杂数据类型、类、函数、面向对象编程等等,也有面试问题,以及 Numpy 和机器学习的内容。其中部分内容的截图如下:这些速查表制作比较美观,图文配色很养眼,适合基础入门的同学食用。_python学习表

Virtualbox源码分析11 CPU manager3:CPUID_uebx-程序员宅基地

文章浏览阅读1.5k次。这一章里,介绍模拟CPUID和CPU寄存器访问11.1 GuestOS CpuId/MSR初始化cpumR3InitCpuIdAndMsrs在CpumInit()函数里调用int cpumR3InitCpuIdAndMsrs(PVM pVM, PCCPUMMSRS pHostMsrs){ // 读取配置 CPUMCPUIDCONFIG Config; cpumR3CpuIdR..._uebx

随便推点

qq文件对方接收后一定会有提示吗_QQ接收别人发的文件怎么设置不弹出接收信息...-程序员宅基地

文章浏览阅读6.4k次。QQ接收别人发的文件怎么设置不弹出接收信息以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!QQ接收别人发的文件怎么设置不弹出接收信息系统设置 消息窗口 把允许来消息时弹出窗口前面的勾去掉希望能帮到你qq怎么设置锁屏接收信息如果是安卓系统,打开设置——应用——找到QQ程序——选择显示悬浮窗。超级QQ怎么设置不接收信息现在还..._qq传输完文件后不提醒

PIL保存二维numpy数组(2,2)为灰度图和RGB图_pil只能保存灰度图像吗-程序员宅基地

文章浏览阅读6.6k次,点赞3次,收藏9次。如果使用cv2,直接保存二维数组就可以了,只是只能保存为灰度图(8bit);如果偏要保存为RGB图,则需要使用np.stack进行深度的堆叠(每个深度R/G/B的值是相同的),然后再保存就是RGB图了如果使用的是PIL,则没那么简单了,首先PIL 只接受浮点数,其次,如果要将二维数组保存为RGB图,需要使用convert('RGB')转化为RGB映射后,再保存;或者,如果只想保存为灰度图,则也必须使用convert('L')进行转换后,再保存就可以了具体代码如下:array = np.arra.._pil只能保存灰度图像吗

关于重装系统后开始菜单栏anaconda3文件夹消失问题的解决办法_开始菜单没有anaconda3-程序员宅基地

文章浏览阅读2.6k次。关于重装系统后开始菜单栏anaconda3文件夹消失问题的解决办法问题描述:初次安装成功,各项功能都可正常使用。重装系统后想要使用anaconda prompt安装扩展包,却发现连anaconda文件夹都没有。解决过程:查看了其他人的解决办法,大致有以下几种:1.python .\Lib\_nsis.py mkmenus2.conda update menuinstconda install -f console_shortcut ipython ipython-notebook ipython-_开始菜单没有anaconda3

signature=82fc81989e4b7cdba7f16c3353e0437e,英语翻译=E5=B0=8A=E6=95= =AC=E7=9A=84=E7=A5=9D=E5=85=88=E7=94...-程序员宅基地

文章浏览阅读708次。=E3=80=80=E3=80=80=E6=89=BF=E8=92=99=E8=B4=B5==E5=85=AC=E5=8F=B8=E5=AF=B9=E6=9C=AC=E4=BA=BA=E7=9A=84=E4=BF=A1=E4=BB=BB=E4==B8=8E=E9=82=80=E8=AF=B7=EF=BC=8C=E8=B0=A8=E8=A1=A8=E4=B8=87=E5=88=86=E6=84==9..._8b=e9=9d

解决IDEA的Range [0, 3) out of bounds for length 2错误-程序员宅基地

文章浏览阅读1.4k次。idea显示Range [0, 3) out of bounds for length 2_range [0, 3) out of bounds for length 2

555定时器-程序员宅基地

文章浏览阅读431次。定时器是一种多用途的数字-模拟混合集成电路,可极方便的构成施密特触发器、单稳态触发器和多谐振荡器,其简化原理图及引脚定义如下所示3个绿色电阻,电阻值为5K;2个黄色和粉色比较器;1个紫色SR触发器;1个蓝色放电三极管引脚定义PINNAMEI/O1GNDGround2TRIGITRIG _555定时器

推荐文章

热门文章

相关标签