TypeError: Date is not a constructor
Solution 1
The variable Date
is hiding the global function Date
and causing this error. Because of how scoping works in JS, the inner-most use of a name is the one that matters.
In this case, you declare var Date
which becomes the only Date
the function knows about. When you assign it a field or text (Date = this.getField...
), you hide the global class.
You can rename your variable (I would suggest date
, as capital names are typically reserved for types) or explicitly reference new window.Date
when you go to construct a new date.
Solution 2
This worked for me:
var d = new window.Date();
Solution 3
Might be this answer will be helpful in future. I was using below code
var dateTime=new date();
But right code is
var dateTime=new Date();
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on September 01, 2021Comments
-
Admin almost 3 years
So, I've been making forms for my company for some time now with pretty easy Javascript that has worked for me in the past. However all of a sudden it's kicking out the error:
TypeError: Date is not a constructor
The Code:
var Date = this.getField("Text1"); Date.value = util.printd("mm/dd/yyyy",new Date());
It works on all my old forms, but now it won't work on new ones... and I've tried making a new button on an old form - just copying and pasting the code, and then it'll break all the other buttons and spit out the same error.
Running: Windows 7 64-bit with Acrobat XI 11.0.10
-
Michiel over 7 yearsHad the same issue using AngularJs. There was a service that was being injected called 'Date'. Renaming the service (if possible) or using window.Date solves the issue.
-
jetpackpony over 7 yearsThere is no problem with defining the variable named Date. The problem is that it is a global variable that might be used by many other things on a page. Check @ssube answer for details
-
Gass over 2 yearsI was using
var x = new Date(someNumber)
in React and it wasn't working. This approach solved my problem. Thanks!