[JavaScript]内置对象Date初识

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

// Date.parse()
Date.parse(new Date())        // 1642471535000
Date.parse("2022/1/18 10:05") // 1642471500000

// 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) + '。');

 

posted @ 2021-07-21 09:52  夕苜19  阅读(43)  评论(0编辑  收藏  举报