如何在 JavaScript 中克隆 Date 对象?


在本教程中,我们将学习如何在 JavaScript 中克隆一个Date对象。我们可以创建一个新的Date类对象,该对象包含根据用户需求的日期和时间。有时,需要复制日期,这意味着克隆它。在这种情况下,用户可以使用下面给出的不同方法。

此外,在本教程中,我们还将学习如何在克隆的日期中设置新的时间和日期。

使用 Date.getTime() 方法克隆日期

用户只需创建 Date 类的新的对象,并使用getTime()方法获取从1970年1月1日开始的毫秒总数。当我们将毫秒总数作为参数传递给 Date() 类构造函数时,它会根据该毫秒数生成日期和时间,并返回新的日期对象。

语法

我们可以按照以下语法使用getTime()方法克隆日期。

let current_date = new Date();
let clone_Date = new Date( current_date.getTime() );

参数

  • current_date.getTime() - 它是从 1970 年 1 月 1 日开始的旧日期的毫秒总数。

示例

在下面的示例中,我们使用 Date 类的构造函数创建了新的日期对象。我们使用Date.getTime()方法创建了原始日期的克隆日期。

<html> <head> </head> <body> <h2> Clone a date object using JavaScript. </h2> <h4> Cloning the date using <i> Date.getTime() </i> method. </h4> <p id = "validate"> </p> <script> let validate = document.getElementById("validate");
// taking the current date let current_date = new Date(); let clone_Date = new Date( current_date.getTime() ); validate.innerHTML += " The old date is : " + current_date + "<br/>"; validate.innerHTML += " The cloned date is : " + clone_Date + "<br/>"; </script> </body> </html>

在上面的输出中,用户可以看到旧数据和克隆日期是相同的。

使用 Date.valueOf() 方法

Date.valueOf()方法也是日期类的一种方法,它返回从第一个纪元开始的毫秒总数。我们可以使用valueOf()方法找到旧日期的毫秒总数,并将其作为参数传递给新的 Date 对象。

语法

用户可以按照以下语法使用 Date.valueOf() 方法克隆日期。

let current_date = new Date();
let clone_Date = new Date( current_date.valueOf() );

示例

在下面的示例中,我们创建了新的日期对象以获取当前日期。此外,我们还使用valueOf()方法克隆了日期,用户可以在输出中看到这两个日期是相同的。

<html> <head> </head> <body> <h2> Clone a date object using JavaScript. </h2> <h4> Cloning the date using <i> Date.valueOf()</i> method. </h4> <p id = "validate"> </p> <script> let validate = document.getElementById("validate");
// taking the current date let old_date = new Date(); let new_Date = new Date( old_date.valueOf() ); validate.innerHTML += " The old date is : " + old_date + "<br/>"; validate.innerHTML += " The new date is : " + new_Date + "<br/>"; </script> </body> </html>

将自定义日期设置为克隆日期

用户已经学会了如何将日期从一个日期克隆到另一个日期并创建它的副本。现在,我们将学习如何将年份、月份或日期设置为克隆日期。我们可以简单地使用日期类的不同方法。

用户可以按照以下语法使用日期类的不同方法来更改克隆日期的年份、月份或日期。

语法

let date = new Date();
let new_date = new Date( date.valueOf() );
new_date.setFullYear( Year ); // set new Year
new_date.setMonth( Month ); // set new Month
new_date.setDate( Date ); // set new Date

参数

  • 年份 - 它是用户想要为克隆日期设置的新年份。

  • 月份 - 它是克隆日期的新月份,以字符串格式表示,范围从 0 到 11。

  • 日期 - 它设置月份中的某一天。

示例

在下面的示例中,我们克隆了日期并将新年份、月份和日期设置为克隆日期。用户可以查看设置新值后克隆数据和新日期之间的区别。

<html> <head> </head> <body> <h2> Clone a date object using JavaScript. </h2> <h4> Change the date and time in cloned date using <i> Date class </i> methods. </h4> <p id = "validate"> </p> <script> let validate = document.getElementById("validate"); // taking the current date let current_date = new Date(); let clone_Date = new Date(current_date.valueOf()); validate.innerHTML += " The old date is : " + current_date + "<br/>"; validate.innerHTML += " The cloned date is : " + clone_Date + "<br/>"; clone_Date.setFullYear("2021"); clone_Date.setMonth("02"); clone_Date.setDate("3"); validate.innerHTML += " After settings the custom year, month, and date to cloned date is : " + clone_Date + "<br/>"; </script> </body> </html>

在本教程中,我们学习了如何使用 Date 类的 getTime() 和 valueOf() 方法克隆日期。此外,我们还在教程的最后一部分学习了如何为日期设置新值。

更新于: 2022-08-17

2K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告