JavaScript 日期格式
JavaScript 日期输入
通常有 3 种 JavaScript 日期输入格式
类型 | 示例 |
---|---|
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 日期格式
计算出的日期将相对于您的时区。
根据您的时区,上述结果将在 3 月 24 日至 3 月 25 日之间变化。
ISO 日期 (年和月)
ISO 日期可以不指定日期 (YYYY-MM)
时区将导致上述结果在 2 月 28 日至 3 月 01 日之间变化。
ISO 日期 (仅年)
ISO 日期可以不指定月份和日期 (YYYY)
时区将导致上述结果在 2014 年 12 月 31 日至 2015 年 01 月 01 日之间变化。
ISO 日期 (日期-时间)
ISO 日期可以包含小时、分钟和秒 (YYYY-MM-DDTHH:MM:SSZ)
日期和时间之间用大写 T 分隔。
UTC 时间用大写 Z 定义。
如果要修改相对于 UTC 的时间,请删除 Z 并添加 +HH:MM 或 -HH:MM
UTC (协调世界时) 与 GMT (格林威治标准时间) 相同。
省略日期-时间字符串中的 T 或 Z 可能在不同浏览器中产生不同的结果。
时区
设置日期时,如果不指定时区,JavaScript 将使用浏览器的时区。
获取日期时,如果不指定时区,结果将被转换为浏览器的时区。
换句话说:如果一个日期/时间是以 GMT (格林威治标准时间) 创建的,那么当用户从美国中部浏览时,该日期/时间将被转换为 CDT (美国中部夏令时)。
JavaScript 简短日期。
简短日期使用 "MM/DD/YYYY" 格式,如下所示
警告!
在某些浏览器中,没有前导零的月份或日期可能会导致错误
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" 格式,如下所示
月份和日期可以按任何顺序排列
月份可以写全称 (January) 或缩写 (Jan)
逗号将被忽略。名称不区分大小写
日期输入 - 解析日期
如果你有一个有效的日期字符串,可以使用 Date.parse()
方法将其转换为毫秒。
Date.parse()
返回日期和 1970 年 1 月 1 日之间的毫秒数
然后你可以使用毫秒数来转换为日期对象