js之Data对象使用

1
Date对象是 JavaScript 原生的时间库。它以国际标准时间(UTC)1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)

普通函数用法

1
2
3
4
5
6
7
// 返回一个代表当前时间的字符串
console.log(Date()); // Wed Feb 09 2022 15:38:52 GMT+0800 (中国标准时间)
// 即使带了参数也是返回当前时间, 参数个数没有影响
console.log(Date(2000, 1, 1)); // Wed Feb 09 2022 15:40:11 GMT+0800 (中国标准时间)
console.log(Date(2000));
console.log(Date(2000, 1));
console.log(Date(2000, 1, 1, 1, 1, 1, 1));

构造函数用法

1
2
3
4
5
6
7
8
9
10
11
// 获取当前的UTC时间
let now = new Date(); // 2022-02-09T07:35:37.335Z
// 时间戳转为字符串格式
let now = new Date(0); // 1970-01-01T00:00:00.000Z
let now = new Date(1644394635720); // 2022-02-09T08:17:15.720Z
// 时间戳为负数则代表1970之前的时间
let now = new Date(-1644394635720); // 1917-11-22T15:42:44.280Z
// 当前时间转化为时间戳(单位:ms)
let now1 = new Date().getTime(); // 1644394635720
// 指定字符串格式的时间转换为时间戳
let now2 = new Date('2022-02-09T07:35:37.335Z').getTime(); // 1644392137335

只要能被Date.parse()解析就可以当成字符串传入new Date()

1
2
3
4
5
6
7
8
9
10
11
// 2022-02-08T16:00:00.000Z
console.log(new Date('2022-2-9'));
console.log(new Date('2022/2/9'));
console.log(new Date('2/9/2022'));
console.log(new Date('2022-FEB-9'));
console.log(new Date('FEB, 9, 2022'));
console.log(new Date('FEB 9, 2022'));
console.log(new Date('February, 9, 2022'));
console.log(new Date('February 9, 2022'));
console.log(new Date('9 Feb 2022'));
console.log(new Date('9, February, 2022'));

new Date()多个参数

new Date(year, month, date, hours, minutes, seconds, ms)
使用当前时区中的给定组件创建日期。只有前两个参数是必须的
也就是说年和月是必须的,最少两个参数,否则被识别为时间戳了。
$ new Date(2022) // 1970-01-01T00:00:02.022Z
$ new Date(2022, 2) // 2022-02-28T16:00:00.000Z
year 必须是四位数:2013 是合法的,98 是不合法的。
month 计数从 0(一月)开始,到 11(十二月)结束。
date 是当月的具体某一天,如果缺失,则为默认值 1。
如果 hours/minutes/seconds/ms 缺失,则均为默认值 0。

静态方法

Date.parse()

Date.parse()方法用来解析日期字符串,返回该时间距离时间零点(1970年1月1日 00:00:00)的毫秒数.
日期字符串应该符合 RFC 2822 和 ISO 8061 这两个标准,即YYYY-MM-DDTHH:mm:ss.sssZ格式,其中最后的Z表示时区。

Date.now()

Date.now方法返回当前时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数,相当于 Unix 时间戳乘以1000。
$ console.log(Date.now()); // 1644399418450

Date.UTC()

Date.UTC方法接受年、月、日等变量作为参数,返回该时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数。
// 格式
Date.UTC(year, month[, date[, hrs[, min[, sec[, ms]]]]])
// 用法
Date.UTC(2011, 0, 1, 2, 3, 4, 567)
// 1293847384567