时间对象(js)
1,获取时间
var d = new Date(); // 创建时间对象(没有参数),是当前电脑此时此刻的时间 console.log(d); // 它是一个对象,{},它里面有很多的属性和方法 var year = d.getFullYear(); // 年 var month = d.getMonth() + 1; // 月,返回的是0--11,代表1--12月 var day = d.getDate(); // 日 var week = d.getDay(); // 星期,返回0--6,代表周日--周六 var h = d.getHours(); // 小时 var m = d.getMinutes(); // 分钟 var s = d.getSeconds(); // 秒 console.log(year, month, day, week, h, m, s);
案例:数字时钟
2、时间戳
// 方式一:全兼容 var d = new Date(); // 时间对象 var n = d.getTime(); console.log(n); // 1599619049126 // 方式二:IE8及以下不支持 console.log(Date.now()); // 1599619157818
3、多种时间格式
var d = new Date(); // 英文 console.log(d.toString()); // Wed Sep 09 2020 10:40:57 GMT+0800 (中国标准时间) console.log(d.toTimeString()); // 10:42:02 GMT+0800 (中国标准时间) console.log(d.toDateString()); // Wed Sep 09 2020 // 中文 console.log(d.toLocaleString()); // 2020/9/9 上午10:41:20 console.log(d.toLocaleTimeString()); // 上午10:42:43 console.log(d.toLocaleDateString()); // 2020/9/9
var d = new Date(); // 没有传参,创建的是电脑此时此刻的时间 console.log(d.toLocaleString()); // 传入数字,代表:年 月 日 时 分 秒(月要减1) var d2 = new Date(2022, 10, 11, 12, 12, 12); console.log(d2.toLocaleString()); // 传入字符串 var d3 = new Date('2020,12,12 12:12:12'); console.log(d3.toLocaleString()); // 传入时间戳 var d4 = new Date(-12212121256501); console.log(d4.toLocaleString()); // 设置时间对象的特定部分 var d5 = new Date(); d5.setFullYear(2030); // 设置年 d5.setMonth(15); // 设置月 (容错的能力) d5.setDate(38); // 设置日 (容错的能力) console.log(d5.toLocaleString());
// 距离10月1日还有多久 var h1 = document.getElementsByTagName('h1')[0]; var d1 = new Date(2020, 8, 9, 11, 32, 0); // 未来时间 fn(); // 一打开就执行 var timer = setInterval(fn, 1000); // 每隔一秒执行一次 function fn() { var d2 = new Date(); // 当前时间 var d = Math.floor((d1 - d2) / 1000); // 未来时间 - 当前时间,取得秒数 if (d <= 0) { clearInterval(timer); h1.innerHTML = '开始抢购吧'; return; } var date = Math.floor(d / 86400); // 天 var h = Math.floor(d % 86400 / 3600); // 小时 var m = Math.floor(d % 3600 / 60); // 分钟 var s = d % 60; // 秒 h1.innerHTML = '距离还有:' + date + '天' + toTwo(h) + '小时' + toTwo(m) + '分钟' + toTwo(s) + '秒'; } function toTwo(n) { if (n < 10) { return '0' + n; } else { return '' + n; } }
作用:moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。
日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。通过moment.js可以快速的格式化事件,得到想要的格式。
创建时间
var d = moment(); // 创建当前时间 var d = moment('2020-10-10'); // 年月日 var d = moment('2020-10-10 12:12:12'); // 年月日 时分秒 var d = moment('20201010'); // 年月日 var d = moment(Date.now() - 86400000); // 昨天的此时此刻 (传入时间戳) console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); // 格式化时间
格式化时间
var d = moment(); // 创建当前时间 console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); // 格式化时间 console.log(d.format('YYYY')); // 年 console.log(d.format('MM')); // 月 console.log(d.format('DD')); // 日 console.log(d.format('d')); // 星期 console.log(d.format('HH')); // 时 console.log(d.format('mm')); // 分 console.log(d.format('ss')); // 秒 console.log(d.format('x')); // 只含秒的时间戳
其它操作
// 修改或获取时间某一部分 var d = moment().year(2030).month(2); // 修改年 修改月 var d = moment().set('year', 2050); // 修改年 console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); console.log(moment().year()); // 获取年 console.log(moment().month()); // 获取月 // -------------------------- // 增加时间 var d = moment().add(5, 'day'); // 5天以后 console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); // ---------------- // 减少时间 var d = moment().subtract(5, 'day'); // 5天前 console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); // 两个时间的比较 // 格式:时间1.diff(时间2, '比较的值'); 时间1和时间2比较 var n = moment().diff(moment('19990910'), 'year'); console.log(n);