目录

JavaScript 日期格式


JavaScript 日期输入

JavaScript 日期输入格式一般有 3 种类型:

类型 示例
ISO日期 "2015-03-25"(国际标准)
短日期 "03/25/2015"
长日期 "Mar 25 2015" 或 "25 Mar 2015"

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

其他格式定义不那么明确,可能是特定于浏览器的。


JavaScript 日期输出

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


JavaScript ISO 日期

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

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

示例(完整日期)

const d = new Date("2015-03-25");
亲自试一试 »

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



ISO 日期(年和月)

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

示例

const d = new Date("2015-03");
亲自试一试 »

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


ISO 日期(仅年份)

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

示例

const d = new Date("2015");
亲自试一试 »

2014 年 12 月 31 日至 2015 年 1 月 1 日期间,上述结果将因时区而异。


ISO 日期(日期-时间)

ISO 日期可以加上小时、分钟和秒 (YYYY-MM-DDTHH:MM:SSZ):

示例

const d = new Date("2015-03-25T12:00:00Z");
亲自试一试 »

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

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

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

示例

const d = new Date("2015-03-25T12:00:00-06:30");
亲自试一试 »

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

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


时区

设置日期时,如果不指定时区,JavaScript 将使用浏览器的时区。

获取日期时,如果不指定时区,结果将转换为浏览器的时区。

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


JavaScript 短日期。

短日期使用 "MM/DD/YYYY" 语法编写,如下所示:

示例

const d = new Date("03/25/2015");
亲自试一试 »

警告!

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

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

"YYYY/MM/DD" 的行为未定义。
有些浏览器会尝试猜测格式。有些会返回 NaN。

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

"DD-MM-YYYY" 的行为也是未定义的。
有些浏览器会尝试猜测格式。有些会返回 NaN。

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

JavaScript 长日期。

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

示例

const d = new Date("Mar 25 2015");
亲自试一试 »

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

示例

const d = new Date("25 Mar 2015");
亲自试一试 »

并且,月份可以写成完整的(January),或缩写的(Jan):

示例

const d = new Date("January 25 2015");
亲自试一试 »

示例

const d = new Date("Jan 25 2015");
亲自试一试 »

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

示例

const d = new Date("JANUARY, 25, 2015");
亲自试一试 »

日期输入 - 解析日期

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

Date.parse()返回该日期与 1970 年 1 月 1 日之间的毫秒数:

示例

let msec = Date.parse("March 21, 2012");
亲自试一试 »

然后您可以使用毫秒数来将其转换为日期目的:

示例

let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
亲自试一试 »

完整的 JavaScript 日期参考

如需完整的日期参考,请访问我们的:

完整的 JavaScript 日期参考.

该参考包含所有 Date 属性和方法的描述和示例。