小码哥的IT人生

JavaScript 日期格式

JavaScript基础 2022-04-25 01:32:26小码哥的IT人生shichen

JavaScript 日期格式

有四种 JavaScript 日期输入格式:

类型 实例
ISO 日期 "2018-02-19" (国际标准)
短日期 "02/19/2018" 或者 "2018/02/19"
长日期 "Feb 19 2018" 或者 "19 Feb 2019"
完整日期 "Monday February 25 2015"

ISO 格式遵守 JavaScript 中的严格标准。

其他格式不太明确,可能是浏览器特定的。

JavaScript 日期输出

无论输入格式如何,JavaScript 默认将输出全文本字符串格式:

Mon Feb 19 2018 06:00:00 GMT+0800 (中国标准时间)

JavaScript ISO 日期

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

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

实例(完整日期)

var d = new Date("2018-02-19");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO 日期</h2>
<p id="demo"></p>
<script>
var d = new Date("2019-05-02");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript ISO 日期

Thu May 02 2019 08:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

计算的日期相对于您的时区。

根据您的时区,上面的结果将在 2 月 18 日至 2 月 19 日之间变化。

ISO 日期(年和月)

写日期也可以不规定具体某日 (YYYY-MM):

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

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO 日期</h2>
<p id="demo"></p>
<script>
var d = new Date("2019-05"); 
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript ISO 日期

Wed May 01 2019 08:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

时区会对结果在 2 月 28 日至 3 月 1 日之间产生变化。

ISO 日期(只有年)

写日期也可以不规定具体的月和日 (YYYY):

var d = new Date("2018");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO 日期</h2>
<p id="demo"></p>
<script>
var d = new Date("2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript ISO 日期

Tue Jan 01 2019 08:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

时区会对结果在 2017 年 12 月 31 日至 2018 年 1 月 1 日之间产生变化。

ISO 日期(完整的日期加时、分和秒)

写日期也可以添加时、分和秒 (YYYY-MM-DDTHH:MM:SS):

var d = new Date("2018-02-19T12:00:00");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO 日期</h2>
<p>用大写字母 T 分隔日期和时间。</p>
<p>用大写字母 Z 标识 UTC 时间。</p>
<p id="demo"></p>
<script>
var d = new Date("2019-05-02T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript ISO 日期

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

用大写字母 Z 标识 UTC 时间。

Thu May 02 2019 20:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

日期和时间通过大写字母 T 来分隔。

UTC 时间通过大写字母 Z 来定义。

如果您希望修改相对于 UTC 的时间,请删除 Z 并用 +HH:MM 或 -HH:MM 代替:

示例代码:

var d = new Date("2018-02-19T12:00:00-08:30");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO 日期</h2>
<p>通过加 +HH:MM或减 -HH:MM 时间来修改相对于 UTC 的时间。</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>
</body>
</html>

运行结果:

Javascript ISO 日期

通过加 +HH:MM或减 -HH:MM 时间来修改相对于 UTC 的时间。

Thu Mar 26 2015 02:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

UTC(Universal Time Coordinated)等同于 GMT(格林威治时间)。

注释:UTC,协调世界时,又称世界统一时间,世界标准时间,国际协调时间。

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

时区

在设置日期时,如果不规定时区,则 JavaScript 会使用浏览器的时区。

当获取日期时,如果不规定时区,则结果会被转换为浏览器时区。

换句话说,假如日期/时间以 GMT(格林威治标准时间)创建,该日期/时间将被转换为 CST(中国标准时间),如果用户从中国进行浏览。

JavaScript 短日期

短日期通常使用 "MM/DD/YYYY" 这样的语法:

示例代码:

var d = new Date("02/19/2018");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
var d = new Date("05/26/2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript new Date()

Sun May 26 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

警告

在某些浏览器中,不带前导零的月或其会产生错误:

var d = new Date("2018-2-19");

“YYYY / MM / DD”的行为未定义。

有些浏览器会尝试猜测格式。有些会返回 NaN

var d = new Date("2018/02/19");

“DD-MM-YYYY”的行为也是未定义的。

有些浏览器会尝试猜测格式。有些会返回 NaN

var d = new Date("19-02-2018");

JavaScript 长日期

长日期通常以 "MMM DD YYYY" 这样的语法来写:

示例代码:

var d = new Date("Feb 19 2018");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
var d = new Date("Mar 26 2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript new Date()

Tue Mar 26 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

月和天能够以任意顺序出现:

示例代码:

var d = new Date("19 Feb 2018");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
var d = new Date("26 Mar 2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript new Date()

Tue Mar 26 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

并且,月能够以全称 (January) 或缩写 (Jan) 来写:

示例代码:

var d = new Date("February 19 2018");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
var d = new Date("January 25 2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript new Date()

Fri Jan 25 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

示例代码:

var d = new Date("Feb 19 2018");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
var d = new Date("Jan 25 2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript new Date()

Fri Jan 25 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

逗号会被忽略,且对大小写不敏感:

示例代码:

var d = new Date("FEBRUARY, 25, 2015");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
var d = new Date("JANUARY, 25, 2019");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Javascript new Date()

Fri Jan 25 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

JavaScript 完整日期

JavaScript 接受“完整 JavaScript 格式”的日期字符串:

示例代码:

var d = new Date("Mon Feb 19 2018 06:55:23 GMT+0100 (W. Europe Standard Time)");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse() 返回日期和1970年1月1日之间的毫秒数:</p>
<p id="demo"></p>
<script>
var msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>
</body>
</html>

运行结果:

Javascript Date.parse()

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

1332259200000

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

JavaScript 会忽略日期名称和时间括号中的错误:

示例代码:

var d = new Date("Fri Mar 26 2018 09:56:24 GMT+0100 (Tokyo Time)");

完整实例:

<!DOCTYPE html>
<html>
<body>
<p>Date.parse(string) 返回毫秒。</p>
<p>您可以使用返回值将字符串转换为日期对象:</p>
<p id="demo"></p>
<script>
var msec = Date.parse("March 22, 2019");
var d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>

运行结果:

Date.parse(string) 返回毫秒。

您可以使用返回值将字符串转换为日期对象:

Fri Mar 22 2019 00:00:00 GMT+0800 (中国标准时间)

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024