【JavaScript】new Date() 内置创建日期构造函数

目录

new Date() 基本使用 

两个 new Date 对象 可以比较吗

ps

eg


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)

具体来说,代码分为两步:

  1. const date = new Date(),创建一个 Date 对象,表示当前时间。

  2. 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 天。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值