2012-05-01 6 views
13

Я пытаюсь сравнить несколько дат в javascript.javascript Date(). GetTime() не является функцией

По какой-то причине, я получаю "Tue May 01 2012 16:43:03 GMT + 0900 (JST) не имеет какого-либо метода" GetTime"

Конечно, strings don't have methods

я начал с этот код внутри обратного вызова, но он терпел неудачу в getTime() на линии, что создает 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(); 
     } 
    }) 
} 

Я сократил его вниз так, мой пример страницы буквально только это:

<!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> 

Это не работает в Chrome 18.0.1025.168 и Firefox 13.0.

Скриншоты из того, что я пробовал:

screenshot no method 'getTime'

screenshot no method 'getTime'

Так что мой вопрос:

WTH?

Должен ли я использовать ParseDate()? Почему это не работает?

ответ

32

Попробуйте использовать new ключевое слово, чтобы создать экземпляр нового объекта так что вместо этого

var now = Date(); 

попробовать это

var now = new Date(); 
+0

поэтому почему .now() не работает но .getTime()? – clocksmith

+0

@clocksmith 'Date.now()' (примечание: no parens) работает, '.getTime()' нуждается в объекте Date. Также см. Http://stackoverflow.com/questions/12517359/performance-date-now-vs-date-gettime Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Дата/сейчас и https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime – handle

15

Чтобы создать объект Date, вам необходимо использовать оператор new.

(new Date()).getTime() 
+6

Спасибо. Я дал зелёный чек в Парв, потому что теперь кажется, что с тобой все в порядке. ;-) –

4

Это сделает 'теперь' в качестве переменной типа как дата:

var now = new Date(); 

Это даст вам время от 'сейчас':

new Date(now).getTime(); 
Смежные вопросы