一.Date()是什么
1.Date()是一个构造函数 所以需要实例化后才可以使用 即必须使用new来调用
实例化 : 面向对象编程中 类名创建对象的过程(如 类名 对象名 = new 类名())
2.Date实例用来处理日期和时间
二.Date()方法的使用
1. 获取当前时间
如 var now = new Date();
console.log(now);
2.Date()构造函数的参数
如果括号里面有参数 就返回参数里的时间
如 第一种写法
var date1 = new Date(2020,6,17);
console.log(date1);
第二种写法
var date2 = new Date('2020-6-21:1:1');
console.log(date2);
三.日期格式化
部分方法(可以直接用)
• get.getFullYear() 获取当前年
• get.getMonth() 获取当前月
• get.getDate() 获取当前日
• get.getDay() 获取当前星期几
• get.getHours() 获取时
• get.getMinutes() 获取分
• get.getSeconds() 获取秒
如 ♦ 格式化日期年月日时分秒
var get = new Date();
console.log(get.getFullYear());
console.log(get.getMonth()+1); 注意 : 由于月份是从0~11所以使用时必须在月份后面+1
console.log(get.getDate());
♦ 格式化星期日~星期六
var get = new Date();
console.log(get.getDay());
♦ 格式化日期时分秒
console.log(get.getHours());
console.log(get.getMinutes());
console.log(get.getSeconds());
四.时间戳
Date对象是基于1970年1月1日(世界标准时间)起的毫秒数
1. 获取日期的总的毫秒数(不是当前毫秒数 而是距离1970年1月1日过了多少毫秒)
♦ 第一种方式:使用valueOf()getTime()
var date0 = new Date();
console.log(date0.valueOf()); // 使用valueOf()获取总毫秒数
var date01 = new Date();
console.log(date01.getTime()); // 使用getTime()获取总毫秒数
♦ 第二种简单写法(常用写法)
var date02 = +new Date(); // +newDate()没有参数返回的就是当前时间总毫秒数
console.log(date02);
(重点)倒计时案例(伪)
思路分析:
(1).核心算法: 输入时间-现在的时间=剩余的时间(即倒计时)
注意:不能直接将时分秒进行相减(结果会是负数)
(2).使用时间戳来做: 即输入的时间总的毫秒数-现在时间总的毫秒数=剩余时间总的毫秒数
(3).最后: 把剩余时间的总毫秒数转换为天时分秒(即时间戳转换时分秒)
转换公式:
1.d=parseInt(总毫秒数/60/60/24);(天数)
2.h=parseInt(总毫秒数/60/60%24);(小时)
3.m=parseInt(总毫秒数/60%60);(分钟)
4.s=parseInt(总毫秒数%24);(秒数)
// 以下是代码
function countDown (time){
var nowTime = +new Date(); //当前时间的总的毫秒数
var inputTime = +new Date(time); //输入时间的总毫秒数
/*输入的时间总的毫秒数-现在时间总的毫秒数=剩余时间总的毫秒数
由于毫秒数转换天时分不准确所以除1000即为秒*/
var times = (inputTime - nowTime) / 1000;
//套用公式转换
var d = parseInt( times/60/60/24); //天
d = d < 10 ? '0' + d : d; //进行补'0'用户体验更好
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%24); //秒
s = s< 10 ? '0' + s : s;
returnd '天' + h + '时' + m + '分' + s + '秒' ; //rrturn返回值
}
console.log(countDown('2020-6-1822:43:00')); //输出结果