Date对象
JS提供了一个Date构造函数,通过new Date() 可以获取到一个Date对象
- 创建一个日期对象
//不传参,获取一个当前时间的对象
var now = new Date();//Wed Oct 23 2019 16:05:34 GMT+0800 (中国标准时间)
//(格式固定)指定具体的时间对象,后面的时分秒可以省略
var date = new Date("2019-05-20 12:00:00");//Mon May 20 2019 12:00:00 GMT+0800 (中国标准时间)
//不常用的方式
//可以把每一个项分别传入,但是注意月份从0开始的,0~11
var date = new Date(2019,4,20,12,0,0);
// 直接传入时间戳也行
var date = new Date(1558324800000);
- 日期格式化
var now = new Date();
// 默认直接打印now对象,会默认调用toString方法,打印结果是一个字符串
console.log(now);//Wed Oct 23 2019 16:19:07 GMT+0800 (中国标准时间)
// 转成标准的字符串日期数据输出(默认)
console.log(now.toString());//Wed Oct 23 2019 16:19:07 GMT+0800 (中国标准时间)
// 输出本地格式日期
console.log(now.toLocaleString());//2019/10/23 下午4:19:07
// 本地格式日期,只输出日期部分
console.log(now.toLocaleDateString());//2019/10/23
// 本地格式日期,只输出时间部分
console.log(now.toLocaleTimeString());//下午4:19:07
- 获取日期的指定部分
之前默认的日期格式化格式很丑,一般不用,通过获取日期的指定部分,可以自定义格式化日期
var now = new Date(); // 当前时间
// 获取年份
var year = now.getFullYear();
// 获取月份——》月份从0开始,范围是0~11,一般会+1
var month = now.getMonth() + 1;
// 获取日——》一个月的几号
// 注意不是getDay!!!——》getDay表示获取星期几(从0开始,0表示周日,1表示周一)
var day = now.getDate();
// 获取时
var hours = now.getHours();
// 获取分
var minutes = now.getMinutes();
// 获取秒
var seconds = now.getSeconds();
var str = year + '年' + month + '月' + day + '日, ' + hours + '时' + minutes + '分' + seconds + '秒';
console.log(str);//2019年10月23日, 16时26分39秒
- 时间戳
时间戳: 表示距离1970年01月01日00时00分00秒起,过去的总毫秒数,可以运算
作用: 用来计算时间差
//两种方式都可以获取到时间戳
var date = +new Date();
var date = Date.now();
举例一:统计代码执行的时间
// 获取开始的时间
var begin = +new Date();
var sum = 0;
for (var i = 1; i <= 100000000; i++) {
sum += i;
}
console.log(sum);
// 获取结束的时间
var end = +new Date();
console.log(end - begin); // 计算时间差,可以得出代码的执行时间毫秒数
举例二:倒计时
var now = new Date();
// 将来需要倒计时的时间
var future = new Date('2020-01-01 00:00:00');
// 得到时间差——》转换成秒数(小数后忽略)
var time = parseInt((future - now) / 1000);
// 获取天数 ——》总的小时数/一天的小时数
var day = parseInt(time / 3600 / 24);
// 秒数中获取时——》1小时=3600秒,对一天24小时求余
var hours = parseInt(time / 3600 % 24);
// 秒数中获取分——》1分钟=60秒, 对所有的分钟数, 对60求余数即可(超过60的进位到小时中了)
var minutes = parseInt(time / 60) % 60;
// 获取秒数,对秒数求60的余数(超过60的部分进位到分钟去了)
var seconds = time % 60;
var str = "距离2020年还有: " + day + '天' + hours + '小时' + minutes + '分钟' + seconds + '秒';
console.log(str);//距离2020年还有: 69天7小时17分钟41秒