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:

screenshot no method 'getTime'

screenshot no method 'getTime'

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();