二维码

JavaScript日期格式

JavaScript日期格式


JavaScript日期输入

JavaScript 日期输入格式通常有 3 种类型:

类型
ISO Date “2015-03-25”(国际标准)
Short Date “03/25/2015”
Long Date “2015 年 3 月 25 日”或“2015 年 3 月 25 日”

ISO 格式遵循 JavaScript 中的严格标准。

其他格式则不然 定义如此明确,并且可能是特定于浏览器的。


JavaScript日期输出

无论输入格式如何,JavaScript 都会(默认情况下)以全文字符串格式输出日期:

1
Wed Dec 13 2023 10:33:02 GMT+0800 (中国标准时间)

JavaScript ISO Dates

ISO 8601 是日期和时间表示的国际标准。

ISO 8601 语法 (YYYY-MM-DD) 也是首选的 JavaScript 日期格式:

:完成日期
1
const d = new Date("2015-03-25");

计算的日期将与您的时区相关。
根据您所在的时区,上述结果 将在3月24日至3月25日之间有所不同。


ISO Dates(年和月)

可以在不指定日期 (YYYY-MM) 的情况下写入 ISO 日期:

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

2 月 28 日至 3 月 1 日期间,上述结果的时区将有所不同。


ISO Dates(仅限年份)

ISO 日期可以不带月份和日期 (YYYY):

1
const d = new Date("2015");

上述结果在 2014 年 12 月 31 日至 2015 年 1 月 1 日期间会有所不同。


ISO Dates(日期-时间)

ISO 日期可以用添加的小时、分钟和秒来书写 (YYYY-MM-DDTHH:MM:SSZ):

-->
1
const d = new Date("2015-03-25T12:00:00Z");

日期和时间用大写字母T分隔。

UTC时间用大写字母Z定义。

如果要修改相对于UTC的时间,请删除Z并添加+HH:MM-HH:MM相反:

1
const d = new Date("2015-03-25T12:00:00-06:30");

UTC(协调世界时)与GMT(格林威治标准时间)相同。

在日期时间字符串中省略T或Z可能会在不同的浏览器中产生不同的结果。


时区

设置日期时,在不指定时区的情况下,JavaScript 将使用 浏览器的时区。

获取日期时,在不指定时区的情况下,结果是 转换为浏览器的时区。

换言之:如果日期/时间是在 GMT(格林威治标准时间)中创建的,则如果用户浏览,日期/时间将转换为 CDT(美国中部夏令时)来自美国中部。


JavaScript Short Dates。

短日期是用“MM/DD/YYYY”语法编写的,如下所示:

1
const d = new Date("03/25/2015");


警告!

在某些浏览器中,没有前导零的月份或天可能会产生错误:

1
const d = new Date("2015-3-25");

“YYYY/MM/DD”的行为是未定义的。
某些浏览器会 试着猜格式。有些人会返回NaN

1
const d = new Date("2015/03/25");

“DD-MM-YYYY”的行为也是未定义的。
某些浏览器会 试着猜格式。有些人会返回NaN

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

JavaScript Long Dates。

长日期通常使用“MMM DD YYYY”语法编写,如下所示:

1
const d = new Date("Mar 25 2015");

月份和日期可以按任意顺序排列:

1
const d = new Date("25 Mar 2015");

而且,月份可以全写(1 月)或缩写(1 月):

1
const d = new Date("January 25 2015");

1
const d = new Date("Jan 25 2015");

逗号将被忽略。名称不区分大小写:

1
const d = new Date("JANUARY, 25, 2015");


日期输入 - 解析日期

如果有一个有效的日期字符串,则可以使用Date.parse()方法将其转换为毫秒。

Date.parse()返回日期和 1 月之间的毫秒数 1, 1970:

1
let msec = Date.parse("March 21, 2012");  

然后,您可以使用毫秒数将其转换为日期对象:

1
2
let msec = Date.parse("March 21, 2012");  
const d = new Date(msec);