将Javascript中的字符串更改为日期无效

将Javascript中的字符串更改为日期无效,javascript,datetime,Javascript,Datetime,我在做这件事: var dDate = document.getElementById('<%= date.ClientID %>').value; alert(dDate); // 2013/08/14 dDate = dDate.replace("-", "/"); dDate = dDate.replace("-", "/"); var Date = new Da

我在做这件事:

  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);
var dDate=document.getElementById(“”).value;
警报(dDate);//2013/08/14
dDate=dDate.replace(“-”,“/”);
dDate=dDate.replace(“-”,“/”);
var日期=新日期(dDate);//此处出现JAVASCRIPT错误。。。
警报(日期);

我看到了一个简单的例子,但不确定为什么它在这里不起作用?如果您能告诉我如何从
date.ClientID添加+1天到date.ClientID
您的替换方法是错误的,这将很有帮助

 var dDate = document.getElementById('<%= date.ClientID %>').value;
 alert(dDate); // 2013/08/14
 dDate = dDate.replace("-", "/");
 dDate = dDate.replace("-", "/");
(只需要一个)并重试

关于问题的第二部分,请参见:


你的替代品走错了方向

 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...
您已经用局部变量隐藏了全局“日期”构造函数。将变量名更改为其他名称,这样会更好

在JavaScript函数中,函数体中的所有
var
声明都“发生”,就好像它们都在顶部一样。声明的赋值部分发生在代码中实际找到声明的地方,但声明(换句话说,将命名变量添加到函数范围)发生在顶部。因此,当您试图调用初始化右侧的“Date”构造函数时,您正试图使用“Date”变量的值,此时它是
未定义的

另外,您的
.replace()
调用是向后的,不需要两个:

dDate = dDate.replace(/\//g, '-');
有些浏览器不需要这个(Firefox可以使用斜杠)

编辑-哦,获得一个在给定日期后一天的日期很容易:

var nextDay = new Date( someDate.getTime() );
nextDay.setDate( nextDay.getDate() + 1 );
问题在于:

          var Date = new Date(dDate);  // JAVASCRIPT ERROR HERE...
您已经用局部变量隐藏了全局“日期”构造函数。将变量名更改为其他名称,这样会更好

在JavaScript函数中,函数体中的所有
var
声明都“发生”,就好像它们都在顶部一样。声明的赋值部分发生在代码中实际找到声明的地方,但声明(换句话说,将命名变量添加到函数范围)发生在顶部。因此,当您试图调用初始化右侧的“Date”构造函数时,您正试图使用“Date”变量的值,此时它是
未定义的

另外,您的
.replace()
调用是向后的,不需要两个:

dDate = dDate.replace(/\//g, '-');
有些浏览器不需要这样做(Firefox可以使用斜杠)

编辑-哦,获得一个在给定日期后一天的日期很容易:

var nextDay = new Date( someDate.getTime() );
nextDay.setDate( nextDay.getDate() + 1 );

看起来您必须更改替换字符的顺序:

dDate = dDate.replace("/", "-");
dDate = dDate.replace("/", "-");

看起来您必须更改替换字符的顺序:

dDate = dDate.replace("/", "-");
dDate = dDate.replace("/", "-");

根本不要做
var Date=new Date()
。看起来您可能正在覆盖默认的javascript Date()对象。相反,尝试类似于
var-date=new-date()

的方法,不要执行
var-date=new-date()
。看起来您可能正在覆盖默认的javascript Date()对象。相反,请尝试类似于
var date=new date()

的方法,替换操作应如下所示:


dDate=dDate.replace(//\//g,“-”)

替换操作应如下所示:


dDate=dDate.replace(//\//g,“-”)

作为旁注,
新日期('2013/08/14')Date
),code>应该可以正常工作?作为旁注,
新日期('2013/08/14')日期
)作为变量,code>应该可以正常工作?非常好,但我得到的下一个日期应该与我输入的格式相同(2013-8-13),因为当前它给出了“Sat Aug 3 01:00:00 UTC+0100 2013”,哦,您必须重新格式化日期;JavaScript本身并没有内置的东西来实现这一点,但它并不是超硬的。还有一些库,如Moment.js和DateJS,提供格式设置。“Date”原型为您提供了格式化所需的所有“片段”。非常好,但我得到的下一个日期应与我输入的格式相同(2013-8-13),因为它当前给出了“Sat Aug 3 01:00:00 UTC+0100 2013”哦,您必须重新格式化日期;JavaScript本身并没有内置的东西来实现这一点,但它并不是超硬的。还有一些库,如Moment.js和DateJS,提供格式设置。“日期”原型为您提供格式化所需的所有“片段”。