js计算当年还剩下多少时间或距离指定时间还有多少天算法原理

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

</head>

<body>

<div id="show" style="text-align:center;font-size:18px;color:#fff;padding:10px 0;font-weight:bold">Loading...</div>

<script type="text/javascript">

function getLastTime(){

// 获取系统现在时间

var date = new Date();

// 获取今年年份

var year = date.getFullYear();

// 创建获取指定时间为:今年12月31日23时59分59秒,问:为什么不是24小时?因为小时在js中是从0开始算的0~23,分和秒也是一样从0~59

var endDate = new Date(year,12,31,23,59,59);

// 指定时间毫秒数 减去 现在时间毫秒数 得出 两个时间之间的毫秒差值

// 我们知道1000毫秒等于1秒,60秒等于1分钟,60分钟等于1个小时,24个小时等于1天,问:那怎么用毫秒差得出距离的天数或者小时、分钟呢?

/* 答: 拿天数比如以此类推:

1. 首先我们将毫秒数除于1000得出秒数,因为1000毫秒等于1秒

2. 得出时间差的秒数后,我们需要算出一天有多少秒?,我们知道一天有24个小时每个小时60分钟每分钟60秒,所以只需要24小时乘于60分钟得出1440分钟,然后1440分钟乘于60秒得出86400秒

3. 得出一天有86400秒后除于时间差的秒就得出距离指定日期还有多少天了

*/

var time = Math.floor((endDate.getTime() - date.getTime())/1000);

// 获取差值的天数

var day = Math.floor(time/(24*60*60));

// 获取差值的小时,时间差秒数取余数86400秒再除于一个小时3600秒得出相差小时,问:为什么取一天的秒的余数呢??,

// 答:时间差的秒除于1天的秒数,我们取这个的余数相当于取了不够除于1天的秒数,也就是说还剩下多少秒就是还剩下多少小时,

// 因为如果足够除于一天的秒数那就是距离还有多少天了也就是天的数值了,而小时则是剩下的秒 除于 60分钟乘于60秒得出一个小时有3600秒然后再除于剩下的秒就变成多少小时了。

// 后面的分钟和秒数大家自已动手算吧。

// 注意:相同优先级运算符按从左到右的顺序计算

// 附上一份mdn的运算符优先级表:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

var hour = Math.floor(time%(24*60*60)/(60*60));

// 获取差值的分钟,简单来说就是取余的作用就是得出不够一天的秒数和不够一个小时的秒数后除于60秒得出分钟

var minute = Math.floor(time%(24*60*60)%(60*60)/60);

// 获取差值的秒数,简单来说就是取余的作用就是得出不够一天的秒数和不够一个小时的秒数和不够一分钟的秒

var second = Math.floor(time%(24*60*60)%(60*60)%60);

// 如果数值小于9则是一位数,则补0

day = day > 9 ? day : ‘0‘ + day;

hour = hour > 9 ? hour : ‘0‘ + hour;

minute = minute > 9 ? minute : ‘0‘ + minute;

second = second > 9 ? second : ‘0‘ + second;

// 获取显示元素将结果输出

document.getElementById("show").textContent = year +"年还剩"+day+"天"+hour+"时"+minute+"分"+second+"秒";

}

// 页面加载后,就调用一次,解决一秒后出现的问题

getLastTime();

// 设置1秒定时以刷新时间

setInterval(getLastTime,1000);

</script>

</body>

</html>

建议将以上代码复制到编辑器查看,更容易查看

原文地址:https://www.cnblogs.com/xiaolantian/p/10389410.html

时间: 2024-08-03 07:08:51

js计算当年还剩下多少时间或距离指定时间还有多少天算法原理的相关文章

javascript 网页中实现一个计算当年还剩多少时间的倒数计时程序

function counter() { var date = new Date(); var year = date.getFullYear(); var date2 = new Date(year, 12, 31, 23, 59, 59); /*转换成秒*/ var time = (date2 - date) / 1000; var day = Math.floor(time / (24 * 60 * 60)) var hour = Math.floor(time % (24 * 60 *

计算当年还剩多少时间的倒计时程序

<!DOCTYPE html > <html> <head> <title></title> </head> <body> <span></span> <script> function counter() { var date = new Date(); var year = date.getFullYear(); var date2 = new Date(year, 12, 31,

JS计算当年还有多少天

function counter() { var date = new Date(); var year = date.getFullYear(); var date2 = new Date(year, 11, 30, 23, 59, 59,999);// /*转换成秒*/ var time = (date2 - date) / 1000; var day = Math.floor(time / (24 * 60 * 60)) var hour = Math.floor(time % (24 *

js计算地球两个经纬度之间的距离

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

JS 计算2个日期相差的天数

<span style="font-size:18px;">function getDays(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var oDate1; var oDate2; var iDays; oDate1= strDateStart.split(strSeparator); oDate2= strDateEnd.split(strSeparator); <spa

JS计算网页停留时间代码

JS计算网页停留时间的代码. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&

html5 表单 填表 select 下拉 textarea多行文本 output Js计算结果

<select>     下拉 <select>下有很多属性 name        其实有name就有value了,因为button提交的都是? name=value的格式, 如果不写value提交的就会是option的字符串 实际上和input 的 list 差不多, 都要用option , value可以不加, 但赋值一般用于数据库的存储和调用. 数据库对于数字索引更高效 size        不用下拉了, 好像淘宝卖家选商品品类列表一样- multiple    多选为t

JS计算两个日期之间的天数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ