目录
new Date()
基本使用
new Date()
是 JavaScript 内置的构造函数,用于创建日期对象。当我们调用 new Date()
时,它会返回当前时间的日期对象。eg:
const now = new Date();
console.log(now); // 输出当前时间的日期对象
new Date()
函数也可以接受一个时间戳作为参数,以便创建指定时间的日期对象。例如:
const timestamp = 1629555460000;
const date = new Date(timestamp);
console.log(date); // 输出时间戳所表示的日期对象
需要注意的是,new Date()
函数的返回值是一个日期对象,而不是一个字符串或数字。如果我们想要将日期对象转换为字符串或数字,可以使用日期对象的方法?
eg: toString()
或 getTime()
。
总之,new Date()
函数有返回值,它返回一个日期对象,表示当前时间或指定的时间。
两个 new Date 对象 可以比较吗
在 JavaScript 中,两个 Date
对象也可以直接使用比较运算符进行比较!
当使用比较运算符比较两个 Date
对象时,JavaScript 会将它们隐式转换为毫秒数,然后进行比较。因此,两个 Date
对象之间的比较也是基于毫秒数进行的,与使用 getTime()
方法的结果是相同的。
下面是一个比较两个 Date
对象的示例,使用比较运算符进行比较:
const date1 = new Date('2021-08-22');
const date2 = new Date('2021-08-23');
if (date1 < date2) {
console.log('date1 在 date2 之前');
} else if (date1 > date2) {
console.log('date1 在 date2 之后');
} else {
console.log('date1 和 date2 相等');
}
ps
需要注意的是,在使用比较运算符比较 Date
对象时,需要将它们直接进行比较,而不能对它们的字符串表示进行比较。例如,下面的代码不会按照预期进行比较:
const date1 = new Date('2021-08-22');
const date2 = new Date('2021-08-23');
if (date1.toString() < date2.toString()) {
console.log('date1 在 date2 之前');
} else if (date1.toString() > date2.toString()) {
console.log('date1 在 date2 之后');
} else {
console.log('date1 和 date2 相等');
}
在上述代码中,我们使用 toString()
方法将 Date
对象转换为字符串,然后进行比较。然而,这种比较方式只是比较了两个字符串的字典序,并不能正确比较两个日期对象之间的大小关系。
因此,在比较 Date
对象时,应该直接使用比较运算符进行比较,而不是对它们的字符串表示进行比较。
eg
const date = new Date(); date.setDate(date.getDate() + 3)
具体来说,代码分为两步:
-
const date = new Date()
,创建一个Date
对象,表示当前时间。 -
date.setDate(date.getDate() + 3)
,将date
对象的日期设置为当前日期加上 3 天。这里使用了getDate()
方法获取当前日期(即本月的第几天),并使用setDate()
方法将日期设置为当前日期加上 3 天的值。
例如,如果今天是 2021 年 8 月 22 日,那么代码执行后 date
对象表示的日期将是 2021 年 8 月 25 日。
需要注意的是,setDate()
方法会自动调整 Date
对象的月份和年份,以确保设置后的日期是有效的。例如,如果当前日期是 2021 年 8 月 31 日,那么将它的日期加上 3 天后,日期将变为 2021 年 9 月 3 日。
总之,这段代码的作用是创建一个 Date
对象,表示当前时间,然后将它的日期设置为当前日期加上 3 天。