如何克隆一个Date对象?

天涯浪子 提交于 2020-02-26 17:19:27

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

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


#1楼

简化版:

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

#2楼

使用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中有效)。


#3楼

这是最干净的方法

let dat = new Date() let copyOf = new Date(dat.valueOf()) console.log(dat); console.log(copyOf);


#4楼

我发现这个简单的赋值也可以工作:

dateOriginal = new Date();
cloneDate = new Date(dateOriginal);

但是我不知道它有多“安全”。 在IE7和Chrome 19中成功测试。


#5楼

var orig = new Date();
var copy = new Date(+orig);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!