[javascript] Date 객체를 복제하는 방법?

Date변수를 다른 변수에 할당 하면 참조가 동일한 인스턴스에 복사됩니다. 이것은 하나를 변경하면 다른 하나가 변경됨을 의미합니다.

실제로 Date인스턴스를 복제하거나 복사하려면 어떻게 해야합니까?



답변

1970 년 1 월 1 일 00:00:00 ( epoch time ) 이후의 밀리 초 수를 반환 하는 Date 객체의 getTime()메서드를 사용하십시오 .

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

Safari 4에서는 다음과 같이 쓸 수도 있습니다.

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

…하지만 다른 브라우저에서 작동하는지 확실하지 않습니다. (IE8에서 작동하는 것 같습니다).


답변

이것은 가장 깨끗한 접근법입니다

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

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


답변

var orig = new Date();
var copy = new Date(+orig);


답변

간체 버전 :

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


답변

이 간단한 할당자가 작동한다는 것을 알았습니다.

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

그러나 나는 그것이 얼마나 “안전한지”모른다. IE7 및 Chrome 19에서 성공적으로 테스트되었습니다.


답변