日期对象详解
前面已经介绍过了jQuery倒计时插件的用法,这里我将会使用到原生的js来进行一个简单的实现
首先 因为date
是一个构造函数,使用时必须new
一个实例出来
new Date()
无参数情况下
// 无参数情况下
let date = new Date();
console.log(date); // new Date() 获得的是当前时间
-
new Date()
有参数情况下字符串型参数 (一般使用字符串型比较多)
let date1 = new Date('2020-01-23 0:0:0'); console.log(date1);// 结果:Thu Jan 23 2020 00:00:00 GMT+0800 (中国标准时间)
数字型参数
let date2 = new Date(2020, 01, 23); console.log(date2);//结果:Sun Feb 23 2020 00:00:00 GMT+0800 (中国标准时间)
-
new Date()
的常用的方法示例:
let date = new Date(); let dateYear = date.getFullYear(); console.log(dateYear);//结果:2020
getMonth()
方法调用时,返回的月份实际是从0开始,也就是说当当前时间为9月时,getMonth()
返回的实际是8月getDay()
方法调用时,比较特殊的是周日返回的不是 7 ,而是 0
-
写一个
2020年1月23日 星期四
格式的日期
-
写一个
2020-1-23 18:20:59
格式的日期
-
获得总的毫秒数(时间戳)
let date = +new Date(); console.log(date);//结果:1578408555151 距离1970年1月1日的总毫秒数
-
倒计时效果
思路:
-
核心算法:输入的时间减去现在的时间就是剩余时间,即倒计时,但是不能拿着时分秒去相减,比如05分减去25分,结果会是负数
-
用时间戳来做,用输入时间总的毫秒数减去现在时间总的毫秒数,得到的就是剩余时间的毫秒数
-
把剩余时间总的毫秒数转换为天,时,分,秒(时间戳转换成时分秒)
-
转换公式:
天数:parseInt(总秒数/60/60/24);//计算天数
小时: parseInt(总秒数/60/60%24);//计算小时
分: parseInt(总秒数/60%60);//计算分数当前秒数: parseInt(总秒数%60);//计算当前秒数
代码:
//封装一个倒计时函数 function countDown(time) { let nowTime = +new Date(); //返回的是当前总的毫秒数 let inputTime = +new Date(time); //返回用户输入时间的总的毫秒数 let times = (inputTime - nowTime) / 1000; //获得剩余时间总的秒数 // 因为我们得到的时间不能是小数 必须是整数 所以要转换成整数类型 let d = parseInt(times / 60 / 60 / 24); //天数 let h = parseInt(times / 60 / 60 % 24); //小时 let m = parseInt(times / 60 % 60); //分 let s = parseInt(times % 60); //当前的秒 let str = '剩余' + d + '天' + h + '小时' + m + '分' + s + '秒' return str } console.log(countDown('2020-11-7 23:40:00'));
-
-
-
大功告成!
本文参考自pink老师