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

智能推荐

C# Lambda表达式和linq表达式 之 匿名对象查询接收-程序员宅基地

文章浏览阅读376次。很多小伙伴都用过Lambda表达式和linq表达式,用起来也得心应手,但是有的小伙伴对匿名对象的查询与接收比较迷茫,(没有定义相应的实体),怎么在where()里面进行条件筛选呢?常规用法我就不说了,我们来说一下匿名对象怎么操作。我们先看一下Lambda表达式的形式:Lambda表达式说明x=>x*x返回参数值的平方x=>{r..._list>查询里面的数据并取值

进程在操作系统内核程序临界区不能进行调度与切换,在普通临界区能够调度与切换?什么是临界资源?什么是临界区_为什么访问普通临界区可以发生进程调度-程序员宅基地

文章浏览阅读3.9k次,点赞11次,收藏20次。操作系统考研真题进程在操作系统内核程序临界区不能进行调度与切换,在普通临界区能够调度与切换?什么是临界资源?什么是临界区_为什么访问普通临界区可以发生进程调度

[海思]--Hi3516a--GPIO(用户层)_海思sdk用户层控制gpio-程序员宅基地

文章浏览阅读5.6k次,点赞2次,收藏15次。[海思]–Hi3516a–GPIO(用户层)控制篇海思Hi3516aGPIO用户层控制篇gpio 玩过单片机的人都应该很熟悉了,然而在linux中,gpio操作属于内核层的范畴,用户想要直接配置gpio的模式和读取gpio的状态是比较困难的一件事情。那么本文主要讲述如何利用海思sdk已有的资源来实现用户层的gpio操作_海思sdk用户层控制gpio

javaweb基于SSH开发家庭收支管理系统源码 课程设计 大作业 毕业设计-程序员宅基地

文章浏览阅读185次。Jdk+Tomcat6+SQLSERVER数据库。开发家庭收支管理系统(大作业/毕业设计)开发环境: Windows操作系统。

xshell 打开文件跳转到最后_XShell 技巧-程序员宅基地

文章浏览阅读658次。说明:很长时间了,一直用XShell,但是总是用鼠标操作,后来想用其他方式代替鼠标,一想肯定有快捷方式等,这里就先记下一遍有用的博文,转自:http://sundful.iteye.com/blog/704079XShell是一款Windows下非常优秀的远程连接Linux主机的工具,是我平常使用不可缺少的工具。今天没事看了下XShell的帮助,找到了一些很实用的技巧,分享给大家。复制和粘贴由于..._xshell查看json文件怎么跳转底部

深度优先搜索python_python深度优先搜索算法-程序员宅基地

文章浏览阅读3.8k次,点赞2次,收藏17次。深度优先搜索概念深度优先搜索和广度优先搜索一样,都是对图进行搜索的算法,目的也都是从起点开始搜索直到到达指定顶点(终点)。深度优先搜索会沿着一条路径不断往下搜索直到不能再继续为止,然后再折返,开始搜索下一条候补路径。具体而言步骤1A为起点,G为终点。一开始我们在起点A上。步骤2将可以从A直达的三个顶点B、C、D设为下一步的候补顶点。步骤3从候补顶点中选出一个顶点。优先选择最新成为候补的点,如果几个顶点同时成为候补,那么可以从中随意选择一个。步骤4此处B、C、D同时成为候补,所以_python深度优先搜索算法

随便推点

opencv 根据仿射变换矩阵计算新坐标点_怎么通过变化矩阵求坐标-程序员宅基地

文章浏览阅读2k次。# 计算经过仿射变换新的boxes # boxes表示原始坐标点,target_point表示经过仿射变换后新的坐标点 pts = np.float32(boxes).reshape([-1, 2]) # 要映射的点 pts = np.hstack([pts, np.ones([len(pts), 1])]).T target_point = np.dot(RotateMatrix, pts) # 映射后的坐标 //src_point表示原图的坐标点,resu..._怎么通过变化矩阵求坐标

【温度预测】麻雀算法优化BP神经网络SSA-BP温度预测【含Matlab源码 3236期】-程序员宅基地

文章浏览阅读588次。麻雀算法优化BP神经网络SSA-BP温度预测完整的代码,方可运行;可提供运行操作视频!适合小白!_麻雀算法优化bp神经网络

PostgreSQL 与 MySQL 相比,优势何在?_pl/pgsql与sql语言相比,优势有哪些?-程序员宅基地

文章浏览阅读453次。如题专区:PostgreSQL 与 MySQL 相比,优势何在?以下文章列举了更为直观的对比图:作者:动力节点在线链接:https://www.zhihu.com/question/20010554/answer/743955463来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。本文是转载文章。MySQL相对于PostgreSQL的劣势:PostgreSQL主要优势:  1. PostgreSQL完全免费,而且是.._pl/pgsql与sql语言相比,优势有哪些?

在IDEA中搭建基于Maven的SSM框架(一)Maven项目搭建_idea使用maven搭建ssm框架-程序员宅基地

文章浏览阅读796次,点赞4次,收藏25次。在IDEA中搭建SSM框架:Maven项目搭建开发环境:JDK1.8、MySQL、Maven3.6开发工具:IDEA 2018.3.1一、搭建基于Maven的web项目1.创建新项目2.选择Maven,JDK,项目原型3.填写项目组织标识符、项目标识符4.配置Maven5.填写项目信息6.点击finish后,如果项目本地路径不存在,IDEA会提..._idea使用maven搭建ssm框架

PHP的SQLSRV连接MSSQL查询之游标_sqlsrv_connect-程序员宅基地

文章浏览阅读591次。SQLSRV驱动程序允许您创建一个结果集,其中包含可以根据游标类型以任何顺序访问的行。本主题将讨论客户端(缓冲)和服务器端(非缓冲)游标及其用法。_sqlsrv_connect

SpringBoot整合RestHighLevelClient实现索引操作以及文档操作_resthighlevelclient 查询索引docs-程序员宅基地

文章浏览阅读1.3w次。SpringBoot整合RestHighLevelClient实现索引操作以及文档操作_resthighlevelclient 查询索引docs

推荐文章

热门文章

相关标签