Date
Date是一个构造函数,必须先实例化
var now = new Date();
console.log(now); //返回当前时间
var myTime = new Date('2021-10-10');
console.log(myTime);//返回指定日期
相关方法:
获取总毫秒数(时间戳):距离1970年1月1日(世界标准时间)起的毫秒数。
<script>
// 实例化Date对象
var now = new Date();
//1用于获取对象的原始值
console.log(now.valueOf());
console.log(now.getTime());
// 2. 简单写可以这么做(!!!!推荐)
var now = +new Date();
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();
</script>
案例:倒计时实现
分析:输入的时间减去现在的时间就是剩余的时间,利用时间戳实现,再将时间戳转换为时分秒
<script>
function countDown(time) {
var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
var inputTime = +new Date(time); // 返回的是用户输入时间总的毫秒数
var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数
//1s=1000ms
var d = parseInt(times / 60 / 60 / 24); // 天
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24); //时
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60); // 分
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60); // 当前的秒
s = s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
console.log(countDown('2021-1-24 00:00:00'));
var date = new Date();
console.log(date); //打印当前时间
</script>
结果:
案例:取年月日以及时分秒的实现
1.利用setTimeout
var t = null;
t = setTimeout(time, 1000); //開始运行
function time() {
clearTimeout(t); //清除定时器
dt = new Date();
var y = dt.getFullYear();
var mt = dt.getMonth() + 1;
var day = dt.getDate();
var h = dt.getHours(); //获取时
var m = dt.getMinutes(); //获取分
var s = dt.getSeconds(); //获取秒
document.querySelector(".showTime").innerHTML = '当前时间:' + y + "年" + mt + "月" + day + "日-" + h + "时" + m + "分" + s + "秒";
t = setTimeout(time, 1000); //设定定时器,循环运行
}
2.利用setInterval
setInterval(time, 1000);
function time() {
dt = new Date();
var y = dt.getFullYear();
var mt = dt.getMonth() + 1;
var day = dt.getDate();
var h = dt.getHours(); //获取时
var m = dt.getMinutes(); //获取分
var s = dt.getSeconds(); //获取秒
document.querySelector(".showTime").innerHTML = '当前时间:' + y + "年" + mt + "月" + day + "日-" + h + "时" + m + "分" + s + "秒";
}