我有一个表单,我需要通过使用javaScript分别获取当前日期和下一个日期来进行一些验证。
我尝试了这段代码,但无法正常使用。
var currentDate = new Date();//get current date
var validdate=currentDate;
validdate.setDate(validdate.getDate()+1);
但是,当有效日期更改为+1时,会发生当前日期也会更改为+1。
但是我需要单独使用它,意味着当我打印输出时:我得到了
currentDate = 5th May 2014;
validdate = 6th May 2014;
然后,当我再次打印currentDate
时,它会变为“2014年5月6日”。
如何在不相互影响的情况下获取当前日期和下一个日期?
答案 0 :(得分:3)
而不是validdate = currentDate;
尝试validdate = new Date();
。
您的问题发生是因为在javascript中,当您将对象传递给某个值时,它会通过引用传递 而不是传递值。因此,当您更改它时,您甚至可以更改原始对象,因为您实际上没有两个不同的对象。
答案 1 :(得分:2)
您指的是currentDate
和validdate
的相同对象实例。
单独初始化它们,如下所示
currentDate = new Date();
validdate = new Date();
还将validdate
重命名为validDate
以提高可读性。
答案 2 :(得分:1)
使用以下代码
创建Date对象的新副本var validdate = new Date(currentDate.getTime());
现在修改validdate对象时,它不会更新currentDate
答案 3 :(得分:0)
试试这个
var currentDate = new Date();//get current date
alert(currentDate.toString());
var validdate=new Date();
validdate.setDate(currentDate.getDate()+1);
alert(validdate.toString());
alert(currentDate.toString());