2012-05-01 32 views
13

我想比較JavaScript中的某些日期。javascript日期()。getTime()不是函數

出於某種原因,我得到 「星期二2012年5月1日16時43分03秒GMT + 0900(JST)沒有法 '的getTime'」

當然,strings don't have methods

我開始

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

我已經削減下來,所以我的例子網頁是真的只是這樣的::

0123回調這裏面的代碼,但它是在 getTime()上創建 var age線路故障
<!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'

所以我的問題:

問心無愧?

我一定要使用ParseDate()?爲什麼這不起作用?

回答

32

嘗試使用new關鍵字來實例化一個新的對象 所以不是這個

var now = Date(); 

試試這個

var now = new Date(); 
+0

那麼爲什麼.now()不工作,但.getTime()呢? – clocksmith

+0

@clocksmith'Date.now()'(注意:沒有parens)確實有效,'.getTime()'需要一個Date對象。另請參閱http://stackoverflow.com/questions/12517359/performance-date-now-vs-date-gettime文檔:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime – handle

15

您需要使用new運營商創建一個Date對象。

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

謝謝。我已經給Parv提供了綠色支票,因爲現在看來你現在還沒有問題。 ;-) –

4

這將使 '現在' 作爲變量類型爲日期:

var now = new Date(); 

這會讓你從'now'開始:

new Date(now).getTime(); 
相關問題