JavaScript 的 Date 对象用于处理日期和时间。它是 JavaScript 中内置的对象之一,它使得我们可以通过编写 JavaScript 代码来处理日期和时间,从而实现了很多与日期时间相关的功能。
## Date 对象的创建
创建 Date 对象的方式有很多种,最常用的三种方式如下:
```javascript
// 1. 不带参数
var now = new Date();
console.log(now);
// 2. 传递时间戳参数
var timeStamp = Date.now();
var date = new Date(timeStamp);
console.log(date);
// 3. 传递表示日期时间的字符串
var str = '2021-01-01 00:00:00';
var date = new Date(str);
console.log(date);
```
第一种方式创建一个 Date 对象时,会返回当前日期和时间的对象,即系统当前时间。第二种方式通过传递一个时间戳参数来创建一个 Date 对象,可以用 `Date.now()` 获取当前时间的时间戳,也可以使用 `new Date().getTime()` 获取当前时间的时间戳。第三种方式则是传递一个表示日期时间的字符串来创建一个 Date 对象。
## Date 对象的属性
Date 对象有很多属性,以下是它们的详细介绍:
- `getDate()`:获取当前月份的日期(1 - 31)。
- `getDay()`:获取当前日期是星期几(0 - 6,星期日为 0)。
- `getMonth()`:获取当前月份(0 - 11)。
- `getFullYear()`:获取当前年份的四位数字。
- `getHours()`:获取当前时间的小时数(0 - 23)。
- `getMinutes()`:获取当前时间的分钟数(0 - 59)。
- `getSeconds()`:获取当前时间的秒数(0 - 59)。
- `getTime()`:获取从 1970 年 1 月 1 日至今的毫秒数。
- `getTimezoneOffset()`:获取本地时间与 GMT 时间相差的分钟数。
- `setDate(dayValue)`:设置月份中的某一天(1 - 31)。
- `setMonth(monthValue)`:设置月份(0 - 11)。
- `setFullYear(yearValue)`:设置年份的四位数字。
- `setHours(hourValue)`:设置时间的小时数(0 - 23)。
- `setMinutes(minuteValue)`:设置时间的分钟数(0 - 59)。
- `setSeconds(secondValue)`:设置时间的秒数(0 - 59)。
- `setTime(milliseconds)`:设置日期和时间,接收一个毫秒参数。
- `toDateString()`:把日期转换成字符串,不包括具体时间,格式为 "Mon Nov 30 2020"。
- `toLocaleDateString()`:把日期转换成本地字符串,不包括具体时间,格式为 "2020/11/30"。
- `toLocaleTimeString()`:将时间转换为本地字符串,不包括日期,格式为 "11:55:00 AM"。
## Date 对象的方法
Date 对象的方法比属性更多,主要都是用于获取日期时间、格式化等方面。下面就是一些常用的方法:
- `toUTCString()`:按照 GMT 标准输出日期时间字符串,格式为 "Wed, 03 Sep 2025 22:05:27 GMT"。
- `toGMTString()`:同样是按照 GMT 标准输出日期时间字符串,格式为 "Wed, 03 Sep 2025 22:05:27 GMT"。
- `toLocaleString()`:返回字符串,代表当前的日期和时间。格式按照用户的本地浏览器格式,默认为 "en-US"。例如 "2025/9/3 下午6:05:27"。
- `toString()`:将日期转换为字符串格式,格式为 "Wed Sep 03 2025 22:05:27 GMT+0800"。
- `toISOString()`:与 `toString()` 方法类似,只不过返回的是一个 UTC 格式的日期字符串,格式为 "2025-09-03T14:05:27.123Z"。
- `valueOf()`:返回从 1970 年 1 月 1 日至今的毫秒数。
- `getDate()`:返回当前月份的日期数。
- `getDay()`:返回当前日期是在星期几,返回值是 0 - 6,分别代表星期日 - 星期六。
- `getMonth()`:返回当前月份的数值,返回值是 0 - 11,分别代表 1 月 - 12 月。
- `getFullYear()`:返回当前的完整年份(四位数)。
- `getHours()`:返回当前时间的小时数(0 - 23)。
- `getMinutes()`:返回当前时间的分钟数(0 - 59)。
- `getSeconds()`:返回当前时间的秒数(0 - 59)。
- `getMilliseconds()`:返回当前时间的毫秒数(0 - 999)。
- `getTime()`:返回从 1970 年 1 月 1 日至今的毫秒数。
- `setDate()`:设置当前月份的日期数。
- `setMonth()`:设置当前月份的数值。
- `setFullYear()`:设置当前年份的四位数。
- `setHours()`:设置当前时间的小时数。
- `setMinutes()`:设置当前时间的分钟数。
- `setSeconds()`:设置当前时间的秒数。
- `setMilliseconds()`:设置当前时间的毫秒数。
- `toLocaleDateString()`:按照本地时间格式返回日期字符串。
- `toLocaleTimeString()`:按照本地时间格式返回时间字符串。
## 案例说明
下面,我们将通过以下案例说明 Date 对象的应用:
### 1. 获取当前日期时间格式化输出
```javascript
var date = new Date();
var yy = date.getFullYear();
var mm = date.getMonth() + 1;
var dd = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
if (mm < 10) {
mm = '0' + mm;
}
if (dd < 10) {
dd = '0' + dd;
}
if (hours < 10) {
hours = '0' + hours;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
if (seconds < 10) {
seconds = '0' + seconds;
}
console.log(yy + '-' + mm + '-' + dd + ' ' + hours + ':' + minutes + ':' + seconds);
```
上面的代码实现了获取当前日期时间并格式化输出的功能,其中 `getMonth()` 方法返回的是一个 0 - 11 之间的数字,如果直接使用该数字作为月份会存在计算错误的情况。
### 2. 计算两个日期之间的天数
```javascript
function getDateDiff(date1, date2) {
var startTime = new Date(date1).getTime();
var endTime = new Date(date2).getTime();
var days = Math.abs(parseInt((startTime - endTime) / (1000 * 60 * 60 * 24)));
return days;
}
console.log(getDateDiff('2021-01-01', '2021-02-01')); // 31
```
上面的例子演示了计算两个日期之间的天数,关键是利用 Date 对象获取日期的时间戳并进行计算。
## 结束语
JavaScript 的 Date 对象封装了很多处理日期时间的方法和属性,我们可以使用它来实现很多有关时间的操作。除了上述方法,还可以应用正则表达式、时间随机器、日期的计算等高级技巧来使用 Date 对象。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复