关于日期:Javascript:getFullyear()不是函数

Javascript: getFullyear() is not a function

我收到一个错误:

1
Statdate.getFullyear() is not a function.

从这个JavaScript代码:

1
2
3
4
var start = new Date();
start = document.getElementById('Stardate').value ;

var y = start.getFullYear();

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


试试这个...

1
2
 var start = new Date(document.getElementById('Stardate').value);
 var y = start.getFullYear();

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

1
2
3
4
5
6
> d = Date();
'Tue Mar 15 2016 20:05:53 GMT-0400 (EDT)'
> typeof(d);
'string'
> d.getFullYear();
TypeError: undefined is not a function

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

1
2
3
4
5
6
7
> el@defiant $ node
> d = new Date();
Tue Mar 15 2016 20:08:58 GMT-0400 (EDT)
> typeof(d);
'object'
> d.getFullYear(0);
2016

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

1
2
3
4
5
6
7
8
9
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


您使用ID为Startdate的DOM元素的value覆盖start日期对象。

这应该工作:

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

var y = start.getFullYear();