如何克隆一个Date对象?

JavaScript

米亚十三Harry

2020-03-12

Date变量分配给另一个变量会将引用复制到同一实例。这意味着更改一个将更改另一个。

我实际上如何克隆或复制Date实例?

第1282篇《如何克隆一个Date对象?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

4个回答
ProGreen 2020.03.12

这是最干净的方法

let dat = new Date() 
let copyOf = new Date(dat.valueOf())

console.log(dat);
console.log(copyOf);

Near西里泡芙 2020.03.12
var orig = new Date();
var copy = new Date(+orig);
米亚神奇 2020.03.12

简化版:

Date.prototype.clone = function () {
    return new Date(this.getTime());
}
DavaidAPro 2020.03.12

使用Date对象的getTime()方法,该方法返回自1970年1月1日00:00:00(纪元时间以来的毫秒数

var date = new Date();
var copiedDate = new Date(date.getTime());

在Safari 4中,您还可以编写:

var date = new Date();
var copiedDate = new Date(date);

...但是我不确定这是否可以在其他浏览器中使用。(似乎可以在IE8中使用)。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android