如何在 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 ); // 设置新的年份 new_date.setMonth( Month ); // 设置新的月份 new_date.setDate( 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() 方法克隆日期。此外,我们还在本教程的最后一部分学习了如何为日期设置新值。