如何在 JavaScript 中克隆 Date 对象
要克隆 Date 对象:
- 使用 getTime() 方法获取自 Unix 纪元以来的毫秒数。
- 将结果传递给 Date() 构造函数。
- 例如,const dateClone = new Date(date.getTime())。
const date = new Date();
console.log(date);
const dateClone = new Date(date.getTime());
console.log(dateClone);
我们可以点击上面的 运行示例 查看实际运行结果。
getTime
方法返回一个数字,该数字表示 1970 年 1 月 1 日午夜和给定日期之间经过的毫秒数。
console.log(new Date().getTime());
Date()
构造函数可以传递一个时间戳作为参数,并创建一个新的 Date 对象来存储指定的日期和时间。
在使用任何改变 Date 对象的方法之前,克隆 Date 是最佳实践,例如 set*
。
const date = new Date('2022-09-24T09:25:00');
// ?️ Sap Sep 24 2022 09:25:00
console.log(date);
const dateClone = new Date(date.getTime());
// ?️ Sap Sep 24 2022 09:25:00
console.log(dateClone);
dateClone.setHours(0, 0, 0, 0);
// ?️ Sat Sep 24 2022 00:00:00
console.log(dateClone);
// ?️ Sat Sep 24 2022 09:25:00 (didn't change original)
console.log(date);
我们使用 getTime()
方法获取日期的时间戳并将其传递给 Date()
构造函数以获取 Date 对象。
当我们必须使用某些 set*
方法但又不想改变原始日期时,通常会使用此方法。
在示例中,我们使用 setHours()
方法更改克隆日期的小时、分钟、秒和毫秒。
setHours()
方法(以及所有其他set*
方法)更改给定日期的值,这并不总是我们想要的。
在使用该方法之前创建日期的克隆允许我们保留原始日期。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。