JavaScript 日期格式
在 JavaScript 中可以使用不同的格式输入和展示日期。
在 JavaScript 中可以使用不同的格式输入和展示日期。
JavaScript 日期输入
JavaScript 日期输入格式通常有 3 种类型:
类型 | 例子 |
---|---|
ISO 日期 | ”2015-03-25“(国际标准) |
ISO 时间 | ”11:11:11+08:00“(国际标准) |
ISO 日期时间 | ”2015-03-25T11:11:11+08:00“(国际标准) |
短日期 | “03/25/2015” |
长日期 | “2015 年 3 月 25 日”或“2015 年 3 月 25 日” |
JavaScript 标准是支持 ISO 格式日期的。其他的日期格式则可能因浏览器而异。
JavaScript ISO 日期
ISO 8601 是表示日期和时间的国际标准。ISO 8601 格式也是 JavaScript 首选的日期格式。
ISO 日期的格式是 YYYY-MM-DD
, 含义如下:
YYYY
代表 4 位年份,比如 2021MM
代表月份,比如01
代表 1 月,11
代表 11 月DD
代表日,比如01
代表 1 日,11
代表 11 日
使用 ISO 日期格式创建日期:
const d = new Date("2015-03-25");
计算出的日期将相对于您坐在的时区。根据不同的时区,上述结果会在 3 月 24 日至 3 月 25 日之间有所不同。
根据年月使用 ISO 日期格式创建日期:
const d = new Date("2015-03");
根据年份使用 ISO 日期格式创建日期:
const d = new Date("2015");
ISO 日期时间
ISO 日期时间的格式是: YYYY-MM-DDTHH:MM:SSZ
, 含义如下:
YYYY
代表 4 位年份,比如 2021MM
代表月份,比如01
代表 1 月,11
代表 11 月DD
代表日,比如01
代表 1 日,11
代表 11 日T
标识后面跟的是时间HH
代表小时,采用 24 时制,比如01
代表凌晨 1 点,21
代表晚上 9 点MM
代表分钟, 00 - 59SS
代表秒, 00 -99Z
代表零时区,如果在其他时区,比如中国所在的东八区,请用+08:00
代替Z
const d = new Date("2015-03-25T12:00:00Z");
const d = new Date("2015-03-25T12:00:00-06:30");
如果在日期时间字符串中省略 T 或 Z , 则可能在不同的浏览器中表现出不同的结果。
时区
设置日期时,不指定时区,JavaScript 将使用浏览器的时区。
获取日期时,不指定时区,结果将转换为浏览器的时区。
JavaScript 短日期。
短日期使用 MM/DD/YYYY
语法编写,如下所示:
const d = new Date("03/25/2015");
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");
document.getElementById("demo").innerHTML = msec;
然后,可以使用毫秒数创建日期对象:
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;