Javascript需要两个日期实例继续获取引用

时间:2010-09-23 02:26:24

标签: javascript date

如何获得日期并减去1年并有第二个日期用于显示和计算?

我是JS的新手,发现自己正在与日期对象战斗 我在globals区域中声明了currentDate和purchaseDate As var new date() 但是现在在一个函数中我尝试将原始日期指定为“currentDate和purchaseDate”一年后,警报显示我已经更改了currentDate的值而不仅仅是我想要的purchaseDate的值..

不是我想要的!所以我通过引用vs值传递,但不知道如何得到这个,以便我有currentDate和purchaseDate两个单独的值(一年前)

currentDate = data.getValue(0,2);
purchaseDate = valueOf(data.getValue(0,2));
purchaseDate.setFullYear(purchaseDate.getFullYear()-1);

alert(purchaseDate);

所以这段代码也失败了;也就是说,购买日期是1年前,但当前日期也是如此

currentDate = data.getValue(0,2);
    purchaseDate = data.getValue(0,2);
            purchaseDate.setFullYear(purchaseDate.getFullYear()-1);
alert(purchaseDate);

1 个答案:

答案 0 :(得分:1)

您发布的代码太模糊,无法可靠地指出问题的根本原因(不清楚valueOf()正在做什么),但基本上,您确实需要创建一个新的Date实例在另一个Date的时间。假设currentDate也是真实的Date,您可以采用以下方式执行此操作。

var purchaseDate = new Date(currentDate.getTime());

这是一个完整的启动示例:

var currentDate = new Date();
var purchaseDate = new Date(currentDate.getTime());
purchaseDate.setFullYear(purchaseDate.getFullYear() - 1);
alert(currentDate); // Today.
alert(purchaseDate); // Today minus one year.