如何在 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年8月17日

2K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告