1.日期对象
- 1.Date日期对象,用来获取当前系统日期.
- 是本地对象,本地对象的特点是不能直接使用,这仅仅是个类方法(类似于函数),需要new执行后才能使用.
- 2.创建日期对象
- new Date(系统默认)
2.日期对象声明
var date1 = new Date();
//设定制定时间:(兼容最强)
var date2 = new Date(“2016/01/27 12:00:00”)
//不常用:
var date3 = new Date(‘Wed Jan 27 2016 12:00:00 GMT+0800 (中国标准时间)’);
- 2.1.获取日期对象的每一部分:
var year = d.getFullYear();//获取完整年份(浏览器都支持)
var month = d.getMonth();//月份是0--11
var myDate = d.getDate(); //获取日 1-31
var day = d.getDay();//星期是0--6 (0是星期天)
var hours = d.getHours();//获取小时 0-23
var minutes = d.getMinutes(); //获取分钟 0-59
var seconds = d.getSeconds(); //获取秒 0-59
var minlls = d.getMilliseconds(); //获取毫秒 (1s = 1000ms)
//设置日期对象
new Date(要设置的数据)
- 2.2.字符:一个参数,直接设置,不允许日期溢出,否则会无效的日期,没有设置的部分,为0.
var d = new Date("2008.8.8");
var d = new Date("2008/8/8");
var d = new Date("2008-8-8");
var d = new Date("2008,8,8");
var d = new Date("2008 8 8");
var d = new Date("2008.14.8 8:8");
var d = new Date("2008.8.8 8:8");
- 2.3.数值:多个参数,直接设置,月份从0开始,日期溢出,向前进1,没有设置的部分为0.
var d = new Date(2008,8,8);
var d = new Date(2008,7,8);
var d = new Date(2008,15,8);
var d = new Date(2008,15,8);
var d = new Date(2008,15,8,20,8,8);
- 返回距离1970/01/01毫秒数-> 独立设置时间戳(毫秒数差值)
//返回1970年1月1日午夜与当前日期和时间之间的毫秒数(4种方法)
var date = Date.now();
var date = +new Date();
var date = new Date().getTime(1970/01/01);
var date = new Date().valueOf();
3.计算两个时间之间的差值
// 计算两个日期之间的差值
function dateDiff(d1,d2){
// 得到第一个日期对象
var date1 = new Date(d1);
// 根据用户是否传参,决定第二个日期对象是指定日期,还是默认日期
if(d2){
var date2 = new Date(d2);
}else{
var date2 = new Date();
}
//三目 var date2 = d2 ? new Date(d2) : new Date();
// console.log(date1 - date2);
// 利用时间戳计算差值
var t = Math.abs(date1.getTime() - date2.getTime());
// console.log(t);
// 作业:如何根据毫秒数,计算天,时,分,秒,毫秒
var day = parseInt(t/1000/60/60/24);
var h = parseInt((t - day*24*60*60*1000)/1000/60/60);
var m = parseInt((t - day*24*60*60*1000 - h*60*60*1000)/1000/60);
var s = parseInt((t - day*24*60*60*1000 - h*60*60*1000 - m*60*1000)/1000)
var ms = t - day*24*60*60*1000 - h*60*60*1000 - m*60*1000 - s*1000;
return {
day:day,
h:h,
m:m,
s:s,
ms:ms
}
}
console.log(dateDiff("2008.8.8","2020/8/8"));
// 如果只传一个日期,想计算距离当前时间
console.log(dateDiff("2008.8.8"));