JavaScript 日期格式


目录

    显示目录


JavaScript 日期输入

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

ISO Date

“2015-03-25”(国际标准)

Short Date

“2015 年 3 月 25 日”

Long Date

“2015 年 3 月 25 日”或“2015 年 3 月 25 日”

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

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


JavaScript 日期输出

与输入格式无关,JavaScript 将(默认情况下)完整输出日期 文本字符串格式:


JavaScript ISO 日期

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

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

示例(完整日期)

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

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
const d = new Date("2015-03-25");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

计算的日期将相对于您的时区。
根据您的时区,上面的结果 3月24日至3月25日期间会有变化。



ISO 日期(年和月)

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
const d = new Date("2015-03"); 
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

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


ISO 日期(仅年份)

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

例子

const d = new Date("2015");

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
const d = new Date("2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

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


ISO 日期(日期-时间)

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>
<p>Separate date and time with a capital T.</p>
<p>Indicate UTC time with a capital Z.</p>

<p id="demo"></p>

<script>
const d = new Date("2015-03-25T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

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

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

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>
<p>Modify the time relative to UTC by adding +HH:MM or subtraction -HH:MM to the time.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>

</body>
</html>

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

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


时区

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

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

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


JavaScript 短日期。

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

例子

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

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("03/25/2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

警告!

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

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");

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("Mar 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("25 Mar 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

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

例子

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

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("January 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("Jan 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

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

例子

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

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("JANUARY, 25, 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

日期输入 - 解析日期

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

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

例子

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

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Date.parse()</h2>
<p>Date.parse() returns the number of milliseconds between the date and January 1, 1970:</p>

<p id="demo"></p>

<script>
const msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>

</body>
</html>

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Date.parse()</h2>
<p>Date.parse(string) returns milliseconds.</p>
<p>You can use the return value to convert the string to a date object:</p>

<p id="demo"></p>

<script>
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

完整的 JavaScript 日期参考

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

完整的 JavaScript 日期参考。

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