Javascript:getFullyear()不是函数

时间:2011-02-08 03:53:58

标签: javascript date

我收到错误:

Statdate.getFullyear() is not a function.

从这个javascript代码:

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

var y = start.getFullYear();

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

4 个答案:

答案 0 :(得分:41)

试试这个......

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

答案 1 :(得分:24)

获取此错误的一种方法是在javascript中实例化日期时忘记使用'new'关键字:

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

如果您使用'new'关键字,它将如下所示:

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

获取该错误的另一种方法是在设置它和使用它时在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

答案 2 :(得分:22)

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

这应该有效:

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

var y = start.getFullYear();

答案 3 :(得分:0)

以上答案都是正确的。我只想强调我做错的一件事。

在创建日期对象时,我使用了 OkHttpClient client = new OkHttpClient(); String url = "http://localhost:9000/testget"; String output = run(url); logger.info("Response is: " + output); } String run(String url) throws IOException { Request request = new Request.Builder() .url(url) .addHeader("Content-type", "application/json") .build(); try (Response response = client.newCall(request).execute()) { return response.body().string(); } } ,这是引发此错误的主要原因。

因此,如果您正在应用 new date().toISOString(),请不要以本地字符串格式更改日期对象。