Date 日期对象是构造函数,需要用 new 实例化后使用。
// 没有传入参数时,返回的是当前的时间 var testDate = new Date(); // 常见的传入参数形式 var date1 = new Date('2021-10-1 8:8:8'); var date2 = new Date('2021/1/11'); var date3 = new Date(2020, 2, 29); // 实际生成的日期是2020-3-29,月份是0开始的
date.getFullYear(); // 获取年 date.getMonth(); // 获取月,从0开始计算,一月是0,...十二月是11。 date.getDate(); // 获取日 date.getDay(); // 获取星期,从0开始计算。周日是0,周一是1,...周六是6。 date.getHours(); // 获取时 date.getMinutes(); // 获取分 date.getSeconds(); // 获取秒
// 日期格式化,提供一种星期转换的思路 function dateFormatChange(date) { // 星期转换 const dayChange = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六',]; return date.getFullYear() + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日' + ' ' + dayChange[date.getDay()]; }
时间戳
时间戳是指格林威治时间1970年01月01日00:00:00 (北京时间1970年01月01日08:00:00) 起至现在的总毫秒数。
可以用 .valueOf(); 或 .getTime(); 方法获取。
// 最常用的写法 +new Date(); 返回的就是时间戳 var date = +new Date('2021-7-16'); console.log(date); // 1626364800000 // H5 新增 Date.now() console.log(Date.now());
练习:倒计时。(要点:时间戳转为天、时、分、秒)
function countdown(aimTime) { // 目标时间戳 // const aimTime = +new Date('2021-10-01 10:00:00'); // 现在的时间戳 var atNow = +new Date(); // 时间差 var timeLeft = aimTime - atNow; // 考点:时间戳转换为天、时、分、秒。 var dday = Math.floor(timeLeft / 1000 / 60 / 60 / 24); // 外层用parseInt();也可 var dhour = Math.floor(timeLeft / 1000 / 60 / 60 % 24); var dmin = Math.floor(timeLeft / 1000 / 60 % 60); var dsec = Math.floor(timeLeft / 1000 % 60); return dday + '天' + dhour + '小时' + dmin + '分' + dsec + '秒'; } const thatDay = +new Date('2021-10-01 10:00:00'); console.log('距离目标时间还有' + countdown(thatDay) + '。');