[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 @   夕苜19  阅读(48)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示