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

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


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

谢谢。

最佳答案

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

另一种可能性:

Java脚本

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

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

newDate.setDate(15);

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


输出量

2014年2月25日,星期二,格林尼治标准时间+0100(CET)
2014年2月15日星期六7:13:53 GMT + 0100(CET)


jsFiddle

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

关于javascript - setDate方法覆盖原始日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22005885/

10-10 17:29