setDate方法覆盖原始日期

时间:2014-02-25 06:02:07

标签: javascript

我正在使用javascript setDate方法执行某些日期操作,因为我的originalDate值的值已丢失。这是我正在尝试的:

var originalDate = new Date();
var newDate = originalDate;
newDate.setDate(15);

我希望setDate()只应更新newDate变量,而不是originalDate。我怎么能这样做。

感谢。

2 个答案:

答案 0 :(得分:2)

您的问题是,您要将originalDate的引用分配给newDate,因此它们都指向同一个Date对象。

另一种可能性:

的Javascript

function cloneDate(dateObject) {
    return new Date(dateObject.valueOf());
}

var originalDate = new Date(),
    newDate = cloneDate(originalDate);

newDate.setDate(15);

console.log(originalDate);
console.log(newDate);

输出

Tue Feb 25 2014 07:13:53 GMT+0100 (CET)
Sat Feb 15 2014 07:13:53 GMT+0100 (CET)

jsFiddle

这会创建newDate,其值与originalDate相同,但现在它们是2个不同的对象

答案 1 :(得分:0)

试试这个

var originalDate = new Date();
var newDate = new Date();
newDate.setDate(15);