gpt4 book ai didi

javascript - 在 Javascript 中将字符串更改为日期不起作用

转载 作者:行者123 更新时间:2023-11-30 08:50:51 24 4
gpt4 key购买 nike

我正在这样做:

  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 天到日期,这也会很有帮助。

最佳答案

问题出在这里:

          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 );

关于javascript - 在 Javascript 中将字符串更改为日期不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17995523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com