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 | let msec = Date.parse("March 21, 2012"); |
0评论