二维码

JavaScript 日期对象

JavaScript 日期对象


JavaScript Date 对象让我们可以使用日期:

1
const d = new Date();  

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

注意

Date 对象是静态的。“时钟”没有“运行”。

计算机时钟在滴答作响,日期对象没有。


JavaScript 日期输出

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

Wed Dec 13, 2023 09:22:39 GMT+0800 (中国标准时间)

在本教程的后面部分,您将了解有关如何显示日期的更多信息。


创建日期对象

Date 对象是使用 new Date() 构造函数创建的。

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

1
2
3
4
5
6
7
8
9
10
11
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()使用当前日期和时间创建一个 Date 对象:

1
const d = new Date();


new Date(日期字符串)

new Date(*date string*)日期字符串创建 Date 对象:

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

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

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


new Date(年、月、…)

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

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

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

注意

JavaScript 从 0 到 11 计算月份:

1 月 = 0

12 月 = 11

指定高于 11 的月份不会导致错误,但会将溢出添加到下一年:

指定:

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

:等同于
1
const d = new Date(2019, 3, 24, 10, 33, 30);  

指定高于 max 的日期不会导致错误,但会将溢出添加到下个月:

:指定
1
const d = new Date(2018, 5, 35, 10, 33, 30);  
:等同于
1
const d = new Date(2018, 6, 5, 10, 33, 30);  


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

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

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

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

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

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

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

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

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

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

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

不能省略月份。如果仅提供一个参数,则将被视为毫秒。

1
const d = new Date(2018);  


上个世纪

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

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

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


JavaScript 将日期存储为毫秒

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

零时间是 1970 年 1 月 1 日 00:00:00 UTC

一天(24 小时)是 86 400 000 毫秒。

现在是时候了:17024305595561970 年 1 月 1 日之后的毫秒数


new Date(毫秒))

new Date(*milliseconds*)创建一个新的 Date 对象,表示毫秒加零时间:

:1970 年 1 月 1 **日加上** 100 000 000 000 毫秒是
1
const d = new Date(100000000000);

:1970 年 1 月 1 **日减去** 100 000 000 000 毫秒是
1
const d = new Date(-100000000000);

:1970 年 1 月 1 **日加** 24 小时是
1
2
3
const d = new Date(24 * 60 * 60 * 1000);  
// or
const d = new Date(86400000);

:1970 年 1 月 1 **日加** 0 毫秒是
1
const d = new Date(0);


Date 方法

创建日期对象时,有许多方法允许您对 它。

日期方法允许您获取和设置年、月、日、小时、 日期对象的分钟、秒和毫秒,使用本地时间或 UTC (世界时间或格林威治标准时间)。

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


显示日期

JavaScript 将(默认情况下)使用 toString() 方法输出日期。 这是日期的字符串表示形式,包括时区。 格式在 ECMAScript 规范中指定:

1
Wed Dec 13 2023 09:22:39 GMT+0800 (中国标准时间)

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

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

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

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

toUTCString()方法使用 UTC 标准将日期转换为字符串:

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

toISOString()方法使用 ISO 标准将日期转换为字符串:

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