Date 对象是 JavaScript 内置的对象,通过它您可以访问计算机系统的时间,此外,Date 对象中还提供了多种用于管理、操作和格式化时间/日期的方法。
1. 创建 Date 对象
在开始处理时间和日期之前,我们需要先创建一个 Date 对象。与其他对象(数组对象、字符串对象等)不同,Date 对象不能直接声明,必须通过 Date() 函数定义。
JavaScript 中提供了四种不同的方法来创建 Date 对象,如下所示:
var time = new Date();
var time = new Date(milliseconds);
var time = new Date(datestring);
var time = new Date(year, month, date[, hour, minute, second, millisecond]);
参数说明如下:
- 不提供参数:若调用 Date() 函数时不提供参数,则创建一个包含当前时间和日期的 Date 对象;
- milliseconds(毫秒):若提供一个数值作为参数,则会将这个参数视为一个以毫秒为单位的时间值,并返回自 1970-01-01 00:00:00 起,经过指定毫秒数的时间,例如 new Date(5000) 会返回一个 1970-01-01 00:00:00 经过 5000 毫秒之后的时间;
- datestring(日期字符串):若提供一个字符串形式的日期作为参数,则会将其转换为具体的时间,日期的字符串形式有两种,如下所示:
- YYYY/MM/dd HH:mm:ss(推荐):若省略时间部分,则返回的 Date 对象的时间为 00:00:00;
- YYYY-MM-dd HH:mm:ss:若省略时间部分,则返回的 Date 对象的时间为 08:00:00(加上本地时区),若不省略,在 IE 浏览器中会转换失败。
- 将具体的年月日、时分秒转换为 Date 对象,其中:
示例代码如下:
var time1 = new Date();
var time2 = new Date(1517356800000);
var time3 = new Date("2018/12/25 12:13:14");
var time4 = new Date(2020, 9, 12, 15, 16, 17);
document.write(time1 + "<br>"); // 输出:Fri Jul 23 2021 13:41:39 GMT+0800 (中国标准时间)
document.write(time2 + "<br>"); // 输出:Wed Jan 31 2018 08:00:00 GMT+0800 (中国标准时间)
document.write(time3 + "<br>"); // 输出:Tue Dec 25 2018 12:13:14 GMT+0800 (中国标准时间)
document.write(time4 + "<br>"); // 输出:Mon Oct 12 2020 15:16:17 GMT+0800 (中国标准时间)
2. Date 对象中的属性
下表中列举了 Date 属性中提供的属性及其描述:
属性 | 描述 |
---|---|
constructor | 返回创建 Date 对象的原型函数 |
prototype | 通过该属性您可以向对象中添加属性和方法 |
示例代码如下:
var time = new Date();
Date.prototype.name = null;
time.name = "JavaScript";
document.write(time.constructor + "<br>"); // 输出:function Date() { [native code] }
document.write(time.name + "<br>"); // 输出:JavaScript
3. Date 对象中的方法
示例代码如下:
var time = new Date();
document.write(time.getDate() + "<br>"); // 输出:23
document.write(time.getDay() + "<br>"); // 输出:5
document.write(time.getFullYear() + "<br>"); // 输出:2021
document.write(time.getHours() + "<br>"); // 输出:16
document.write(time.getMonth() + "<br>"); // 输出:6
document.write(time.getTime() + "<br>"); // 输出:1627028869285
document.write(time.getUTCDate() + "<br>"); // 输出:23
document.write(time.toDateString() + "<br>"); // 输出:Fri Jul 23 2021
document.write(time.toString() + "<br>"); // 输出:Fri Jul 23 2021 16:29:57 GMT+0800 (中国标准时间)
document.write(time.toLocaleDateString() + "<br>"); // 输出:2021/7/23
document.write(time.toLocaleTimeString() + "<br>"); // 输出:下午4:31:00
document.write(time.toLocaleString() + "<br>"); // 输出:2021/7/23下午4:31:00