Assigning a Date
variable to another one will copy the reference to the same instance. This means that changing one will change the other.
How can I actually clone or copy a Date
instance?
This question is related to
javascript
Use the Date object's getTime()
method, which returns the number of milliseconds since 1 January 1970 00:00:00 UTC (epoch time):
var date = new Date();
var copiedDate = new Date(date.getTime());
In Safari 4, you can also write:
var date = new Date();
var copiedDate = new Date(date);
...but I'm not sure whether this works in other browsers. (It seems to work in IE8).
This is the cleanest approach
let dat = new Date() _x000D_
let copyOf = new Date(dat.valueOf())_x000D_
_x000D_
console.log(dat);_x000D_
console.log(copyOf);
_x000D_
I found out that this simple assignmnent also works:
dateOriginal = new Date();
cloneDate = new Date(dateOriginal);
But I don't know how "safe" it is. Successfully tested in IE7 and Chrome 19.
Simplified version:
Date.prototype.clone = function () {
return new Date(this.getTime());
}
var orig = new Date();
var copy = new Date(+orig);
console.log(orig, copy);
_x000D_
Source: Stackoverflow.com