时间对象(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、时间戳

时间戳:1970 年 1 月 1 日午夜(零时)开始到现在经过的毫秒数

// 方式一:全兼容
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

4、创建特定时间

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());

5、倒计时

// 距离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;
    }
}

 6、Moment.js

地址:http://momentjs.cn/

作用: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);
原文地址:https://www.cnblogs.com/cyf666cool/p/13650846.html