2012-05-01 3 views
13

J'essaie de comparer des dates en javascript.javascript Date(). GetTime() n'est pas une fonction

Pour une raison quelconque, je suis obtenir "01 Mar 2012 16:43:03 GMT mai + 0900 (JST) n'a pas de méthode 'getTime'"

Bien sûr, strings don't have methods

J'ai commencé avec ce code à l'intérieur d'un rappel, mais il ne parvenait pas à getTime() sur la ligne qui crée var age: Page

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

Je l'ai Pared vers le bas donc mon exemple est littéralement ceci:

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

Cela échoue dans Chrome 18.0.1025.168 et Firefox 13.0.

Captures d'écran de ce que j'ai essayé:

screenshot no method 'getTime'

screenshot no method 'getTime'

Ma question:

wth?

Dois-je utiliser ParseDate()? Pourquoi ça ne marche pas?

Répondre

32

Essayez d'utiliser new mot-clé pour instancier un nouvel objet donc au lieu de ce

var now = Date(); 

essayer cette

var now = new Date(); 
+0

alors pourquoi .now() ne fonctionne pas mais .getTime() le fait? – clocksmith

+0

@clocksmith 'Date.now()' (note: no parens) fonctionne, '.getTime()' a besoin d'un objet Date. Voir aussi http://stackoverflow.com/questions/12517359/performance-date-now-vs-date-gettime Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now et https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime – handle

15

Vous devez utiliser l'opérateur new pour créer un objet Date.

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

Merci. J'ai donné le chèque vert à Parv parce qu'il semble que vous êtes d'accord pour le moment. ;-) –

4

Cela fera 'maintenant' en tant que type de variable que la date:

var now = new Date(); 

Cela vous permettra de passer du temps avec 'maintenant':

new Date(now).getTime(); 
Questions connexes