JavaScript 日期

实例

const d = new Date();

亲自试一试

const d = new Date("2022-03-25");

亲自试一试

说明

日期对象是静态的,其"时钟"并非"实时运行"。

计算机时钟在持续走动,而日期对象并不会自动更新。

JavaScript 日期输出

默认情况下,JavaScript 将使用浏览器的时区并将日期显示为全文本字符串:

Tue Apr 02 2019 09:01:19 GMT+0800 (中国标准时间)

稍后,您将在本教程学到更多关于如何显示日期的知识。

创建 Date 对象

Date 对象由新的 Date() 构造函数创建。

9 种方法创建新的日期对象:

new Date()
new Date(date string)

new Date(year,month)
new Date(year,month,day)
new Date(year,month,day,hours)
new Date(year,month,day,hours,minutes)
new Date(year,month,day,hours,minutes,seconds)
new Date(year,month,day,hours,minutes,seconds,ms)

new Date(milliseconds)

JavaScript new Date()

new Date()当前日期和时间创建新的日期对象:

实例

const d = new Date();

亲自试一试

日期对象是静态的。计算机时间正在滴答作响,但日期对象不会。

new Date(date String)

new Date(date String)日期字符串创建一个新的日期对象:

实例

const d = new Date("October 13, 2014 11:13:00");

亲自试一试

实例

const d = new Date("2022-03-25");

亲自试一试

日期字符串将在下一章中介绍。

new Date(year, month, ...)

new Date(year, month, ...)指定日期和时间创建新的日期对象。

7 个数字分别指定年、月、日、小时、分钟、秒和毫秒(按此顺序):

实例

const d = new Date(2018, 11, 24, 10, 33, 30, 0);

亲自试一试

说明

JavaScript 从 011 计算月份。

一月是 0。十二月是 11。

如果将月份指定为大于 11 的数值,不会引发错误,而是会将溢出部分累加到下一年中:

const d = new Date(2018, 15, 24, 10, 33, 30);

亲自试一试

相当于:

const d = new Date(2019, 3, 24, 10, 33, 30);

亲自试一试

若指定的日期大于当月最大值,不会引发错误,而是会将溢出天数累加到下一个月:

例如指定:

const d = new Date(2018, 5, 35, 10, 33, 30);

等价于:

const d = new Date(2018, 6, 5, 10, 33, 30);

亲自试一试

使用 6、4、3 或 2 个数字

6 个数字分别指定年、月、日、时、分、秒:

实例

const d = new Date(2018, 11, 24, 10, 33, 30);

亲自试一试

5 个数字指定年、月、日、小时和分钟:

实例

const d = new Date(2018, 11, 24, 10, 33);

亲自试一试

4 个数字指定年、月、日和小时:

实例

const d = new Date(2018, 11, 24, 10);

亲自试一试

3 个数字指定年、月和日:

实例

const d = new Date(2018, 11, 24);

亲自试一试

2 个数字指定年份和月份:

实例

const d = new Date(2018, 11);

亲自试一试

注意:您不能省略月份。如果只提供一个参数,则将其视为毫秒。

实例

const d = new Date(2018);

亲自试一试

上个世纪

一位和两位数年份将被解释为 19xx 年:

实例

const d = new Date(99, 11, 24);

亲自试一试

实例

const d = new Date(9, 11, 24);

亲自试一试

JavaScript 以毫秒形式存储日期

JavaScript 将日期存储为自 1970 年 1 月 1 日以来的毫秒数。

时间零点为世界标准时间(UTC)1970 年 1 月 1 日 00:00:00。

一天(24 小时)相当于 86,400,000 毫秒。

当前时间为:自 1970 年 1 月 1 日以来已过去 毫秒。

new Date(milliseconds)

new Date(milliseconds) 创建一个零时加毫秒的新日期对象:

1970年 1 月 1 日加上 100 000 000 000 毫秒,大约是 1973 年 3 月 3 日:

实例

const d = new Date(100000000000);

亲自试一试

1970 年 1 月 1 日减去 100 000 000 000 毫秒大约是 1966 年 10 月 31 日:

实例

const d = new Date(-100000000000);

亲自试一试

1970 年 1 月 1 日加上 24 小时是:

实例

const d = new Date(24 * 60 * 60 * 1000);
// or
const d = new Date(86400000);
// 一天(24 小时)是 86 400 000 毫秒。

亲自试一试

1970 年 1 月 1 日加上 0 毫秒是:

实例

const d = new Date(0);

亲自试一试

日期方法

创建 Date 对象时,可以使用许多方法对其进行操作。

日期方法允许您使用本地时间或 UTC(通用或 GMT)时间来获取和设置日期对象的年、月、日、小时、分钟、秒和毫秒。

日期方法和时区将在下一章中介绍。

显示日期

默认情况下,JavaScript 会通过 toString() 方法输出日期。这会返回包含时区信息的日期字符串表示形式,其格式遵循 ECMAScript 规范的规定:

Wed Mar 25 2015 08:00:00 GMT+0800 (中国标准时间)

亲自试一试

在 HTML 中显示日期对象时,会使用 toString() 方法自动转换为字符串。

实例

const d = new Date();
d.toString();

亲自试一试

toDateString() 方法将日期转换为更易读的格式:

实例

const d = new Date();
d.toDateString();

亲自试一试

toUTCString() 方法将日期转换为 UTC 字符串(一种日期显示标准)。

实例

const d = new Date();
d.toUTCString();

亲自试一试

toISOString() 方法会按照 ISO 标准将日期转换为字符串:

const d = new Date();
d.toISOString();

亲自试一试