Javascript:getFullyear()不是函数

Pra*_*ady 25 javascript date

我收到一个错误:

Statdate.getFullyear() is not a function.
Run Code Online (Sandbox Code Playgroud)

从这个JavaScript代码:

var start = new Date();
start = document.getElementById('Stardate').value ;

var y = start.getFullYear();
Run Code Online (Sandbox Code Playgroud)

知道为什么这个功能不可用吗?

lim*_*imc 47

试试这个...

 var start = new Date(document.getElementById('Stardate').value);
 var y = start.getFullYear();
Run Code Online (Sandbox Code Playgroud)

  • 对于那些搜索“getFullyear() is not a function”的人,当您使用“let”关键字而不是“var”声明日期对象时,有时会发生这种错误 (4认同)
  • @adhamdwikat 你能解释一下如何/为什么吗?在什么情况下会因为let/var而发生这种情况? (3认同)

Eri*_*ski 27

获取此错误的一种方法是在javascript中实例化Date时忘记使用'new'关键字,如下所示:

> d = Date();
'Tue Mar 15 2016 20:05:53 GMT-0400 (EDT)'
> typeof(d);
'string'
> d.getFullYear();
TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)

如果你使用'new'关键字,它看起来像这样:

> el@defiant $ node
> d = new Date();
Tue Mar 15 2016 20:08:58 GMT-0400 (EDT)
> typeof(d);
'object'
> d.getFullYear(0);
2016
Run Code Online (Sandbox Code Playgroud)

获取该错误的另一种方法是在设置它和使用它时在javascript中意外地重新实例化变量,如下所示:

el@defiant $ node
> d = new Date();
Tue Mar 15 2016 20:12:13 GMT-0400 (EDT)
> d.getFullYear();
2016
> d = 57 + 23;
80
> d.getFullYear();
TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)


JCO*_*611 23

您使用ID为的DOM元素覆盖start日期对象.valueStartdate

这应该工作:

var start = new Date(document.getElementById('Stardate').value);

var y = start.getFullYear();
Run Code Online (Sandbox Code Playgroud)