javascript Date().getTime() is not a function
I'm trying to compare some Dates in javascript.
For some reason, I'm getting "Tue May 01 2012 16:43:03 GMT+0900 (JST) has no method 'getTime'"
Of course, strings don't have methods
I started with this code inside a callback, but it was failing at getTime()
on the line that creates var age
:
for (var i = 0; i < array_of_usage_indices.length; i++) {
store.get(array_of_usage_indices[i]['key'],function(may_need_gc) {
if(may_need_gc) {
var now = Date();
var created = Date(may_need_gc['value']);
var age = now.getTime()-created.getTime();
}
})
}
I've pared it down so my example page is literally just this:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>date test</title>
</head>
<body>
<script type="text/javascript" charset="utf-8">
var now = Date();
alert(now.getTime());
var t = Date().getTime();
</script>
</body>
</html>
This is failing in Chrome 18.0.1025.168 and Firefox 13.0.
Screenshots of what I've tried:
So my question:
wth?
Do I have to use ParseDate()? Why isn't this working?
Solution 1:
Try using new
keyword to instantiate a new object
so instead of this
var now = Date();
try this
var now = new Date();
Solution 2:
You need to use the new
operator to create a Date object.
(new Date()).getTime()
Solution 3:
This will make 'now' as variable type as date:
var now = new Date();
This will get you time from 'now':
new Date(now).getTime();