我正在做的事情:
var dDate = document.getElementById('<%= date.ClientID %>').value;
alert(dDate); // 2013/08/14
dDate = dDate.replace("-", "/");
dDate = dDate.replace("-", "/");
var Date = new Date(dDate); // JAVASCRIPT ERROR HERE...
alert(Date);
我看到简单的例子,但不确定为什么它不能在这里工作?如果你能告诉我如何从date.ClientID
添加+1日期,那将会很有帮助。
答案 0 :(得分:3)
问题在于:
var Date = new Date(dDate); // JAVASCRIPT ERROR HERE...
您已使用本地变量隐藏了全局“Date”构造函数。将您的变量名称更改为其他名称,它应该更好。
在JavaScript函数中,函数体的所有var
声明都“发生”,好像它们都在顶部。声明的赋值部分发生在实际找到声明的代码中,但声明 - 将命名变量添加到函数作用域,换句话说 - 发生在顶部。因此,当您尝试在初始化的右侧调用“Date”构造函数时,您尝试使用“Date”变量的值,此时此变量为undefined
。
此外,您的.replace()
来电是倒退的,您不需要两个:
dDate = dDate.replace(/\//g, '-');
有些浏览器不需要(Firefox可以使用斜杠)。
编辑 - 哦,并且在给定日期之后的某一天获得日期很简单:
var nextDay = new Date( someDate.getTime() );
nextDay.setDate( nextDay.getDate() + 1 );
答案 1 :(得分:1)
你有错误的替换方式。
var dDate = document.getElementById('<%= date.ClientID %>').value;
alert(dDate); // 2013/08/14
dDate = dDate.replace("-", "/");
dDate = dDate.replace("-", "/");
如果你在这里做了另一个alert
,你会看到它仍在说2013/08/14。尝试:
dDate = dDate.replace("/", "-");
(只需要一个)并重试。
关于问题的第二部分,请参阅Add days to JavaScript Date:
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
答案 2 :(得分:1)
根本不做var Date = new Date()
。看起来您可能会覆盖默认的javascript Date()对象。相反,尝试类似var date = new Date()
答案 3 :(得分:0)
看起来您必须更改替换字符顺序:
dDate = dDate.replace("/", "-");
dDate = dDate.replace("/", "-");
答案 4 :(得分:0)
替换应该像这样:
dDate = dDate.replace(/\//g, "-");