JavaScript中指定时间实例化Date
2023-02-03 11:30:00
JavaScript 中实例化 Date 对象,有 4 种方式,有很多注意事项
```
// 当前时间
new Date();
// 使用 Unix Timestamp
new Date(timestamp);
// 使用字符串
new Date(dateString);
// 指定年月日时分秒
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
```
下面是使用示例
```
<div id="a1"></div>
<div id="a2"></div>
<div id="a3"></div>
<div id="a4"></div>
<div id="a5"></div>
<div id="a6"></div>
<script>
// 符合 IETF RFC 2822 标准的字符串
document.getElementById('a1').innerHTML = new Date('2023/01/30 23:58:00')
// 注意:iOS 不支持这种格式,得到: Invalid Data
document.getElementById('a2').innerHTML = new Date('2023-01-30 23:58:00')
// 对于这种情况可以这样处理 new Date('2023-01-30 23:58:00'.replace('-', '/')
// 注意:月份是 monthIndex,从 0 开始
document.getElementById('a3').innerHTML = new Date(2023, 1 - 1, 30, 23, 58, 0)
// 注意:ISO8601 格式字符串,中国在东八区
document.getElementById('a4').innerHTML = new Date('2023-01-30T23:58:00+08:00')
// 注意:是毫秒 Unix Timestamp
document.getElementById('a5').innerHTML = new Date(1675094280 * 1000)
// 注意:这样是格林威治标准时间,与中国的东八区相差 8 小时
document.getElementById('a6').innerHTML = new Date('2023-01-30T23:58:00Z')
</script>
```
结果如下:
![date.png](https://static.daimaku.net/post/202302/03/d6889ca72f1193b71249821b8bde42fa.png)
参考
[IETF-compliant RFC 2822 timestamps](https://tools.ietf.org/html/rfc2822#page-14)
[ISO8601](https://262.ecma-international.org/5.1/#sec-15.9.1.15)
[MDN date](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date)